Dart初学,基本了解

入口方法,打印和注释如下

void main{
	// print('你好dart');
	/* print('你好dart'); */
	print('你好dart');
}

变量

可以通过var关键词声明变量,也可以通过类型关键词来声明变量
使用var定义的话会自动推断类型,但是和js不同,声明的变量 类型指定之后是不可变为其他类型的

var str = 'this is var';
String str = 'this is var';
int str = 123;

变量的命名规则
1、变量名称必须由数字、字母、下划线和美元符组成
2、注意:标识符开头不能是数字
3、不能是保留字和关键字
4、变量名称是区分大小写的
5、变量名起名建议能够见名思意

常量
使用关键字const或者final来声明,常量是不可以改变的

const PI = 3.14159;
final PI = 3.14159;

const和final的区别
final可以开始不赋值 只能赋一次;而final不仅有const的编译时常量的特性,最重要的它是运行时常量,并且final是惰性初始化,即在运行时第一次使用前才初始化

final a = new DateTime.now(); // 正常
const b = new DateTime.now(); // 会报错

数据类型

Dart中支持以下数据类型

常用数据类型:
Numbers(数值):int、double
Strings(字符串):String(使用三个单引号或者三个双引号包含起来时,代码中的字符可以换行,类似于js的模板字符串)
Booleans(布尔):bool
List(数组):在Dart中,数组是列表对象,所以大多数人只是称它们为列表
Maps(字典):通常来说,Map是一个键值对相关的对象。键和值可以是任何类型的对象。每个键只出现一次

项目中用不到的数据类型:
Runes:Rune是UTF-32编码的字符串,它可以通过文字转换成符号表情或者代表特定的文字。
Symbols:Symbol对象表示在Dart程序中声明的运算符或标识符。

字符串拼接
两种方式,一种是通过美元符,另一种是通过加号

String str1 = '你好';
String str2 = 'Dart';
print("$str1 $str2");
print(str1+str2);

布尔型变量的声明

bool flag = false;

条件判断中使用的是两个等号,而且是不会自动进行类型转换的(也就是说两个类型不同的变量比较为flase),这个和js不同,需要注意。

List类型的声明

var l1 = ['aaa','bbb','ccc'];

// 另一种方法
var l2 = new List();
l2.add('张三');
l2.add('张四');
l2.add('张五');

//定义list指定类型
var l3 = new List<String>();

Map类型的声明
map中的key必须加引号,value可以是任何类型;只可以用中括号的形式来访问里面的值,不能通过点的方式来访问

var person = {
	"name":"张三",
	"age":20
};

print(person);
print(person['name']);

//第二种定义Maps的方式
var p = new Map();
p['name'] = "李四";
p['age'] = 22;

判断变量是什么类型
通过is关键字来判断变量是什么类型,有点想js里面的typeof

var str = '1234';
if(str is String){
	print('是String类型');
}

运算符

算术运算符
+  -  *  /  ~/(取整)  %(取余)

关系运算符
==  !=  >  <  >=  <=

逻辑运算符
!  &&  ||

赋值运算符
基础赋值运算符  =  ??=(表示左边变量为空的话就将右边的值赋值给左边)
复合赋值运算符  +=  -=  *=  /=  %=  ~/=

条件表达式
if  else  switch  case

??运算符
var a;
var b = a ?? 10;
print(b); //10 
// ??运算符其实就是 是不是空的意思 ,娶不为空的值

类型转换

Number类型与String类型之间的转行
Number类型转换成String类型 toString()
String类型转换成Number类型 int.parse()
String类型转换成double类型 double.parse()

String str = '123';
var myNum = int.parse(str);
var myDou = double.parse(str);

注意:当str是一个空的字符串时候,转换就会报错。所以要使用try-catch包裹

String pirce = '';
try{
	var myNum=double.parse(price);
	print(myNum);
}catch(err){
	print(0);
}

其他类型转换成Booleans类型
isEmpty:判断字符串是否为空

var str = '';
if(str.isEmpty){
	print('str空');
}

isNaN:判断是否为NaN
注意:Dart中除零不会报错

var myNum= 0/0;
if(myNum.isNaN){
	print('myNum是NaN');
}

猜你喜欢

转载自blog.csdn.net/weixin_44679078/article/details/106972688