Dart基础知识(一) 变量&常量 Object & dynamic

变量 var声明

  • js 不会在编译时检查变量类型,但 dart会
  var user = 'lily';  //声明为字符串 会自动匹配类型
  user = 123;  //会报错

Object & dynamic

  Object password = 123;
  password = 'good job'; 
 //不会报错,因为变量类型为最父级的类型,所以赋什么类型的值都可以 不建议

所有类型继承object 包括 function 和 null

js 最顶端是 undefind

 dynamic word = 123;
 word. 
//可以推断出任何一个方法,不只是Object的方法,相当于并没有定义出任何一个明确的类型
//当一个变量被声明为dynamic后,编译器则会关闭对此变量的类型检查

dynamic 与 Object 的不同

dynamic a = 'a';
Object b = 'b';
print(a.length);   //不会报错
print(b.length);   //会报错

变量类型

Number: int double

int a = int.parse('111');  //字符串转整数

String:

String good = 123.toString(); //整数转字符串
String job = 123.222.toStringAsFixed(2);  //double转字符串 四舍五入保留两位(事实上50并不会入 从51开始入)

bool:

与js不同的是:

bool result = 1=='1';
//result == false

或 print( 1=='1');   //false

因为dart为强类型,而js为弱类型

List:

List list = new List();
list.add(2);
list.addAll([1,2,3]);  //addAll是add一个数组进去
//此时的数组输出为[2,1,2,3];
print(list.first);
print(list.last); //可以输出第一个或最后一个
print(list.length);
print(list[2]);

Map:

Map obj = {'x':1,'y':2,'z':3};  //这里的‘’是不能省略的
Map obj = new Map(); //定义
obj['x'] = 1;   //赋值
print(obj.containsKey('x'));   //true
obj.remove('x');   //移除

常量

final p = 'good';
const pp = 'good';

区别 :

  • const 编译时常量 在运行之前就已经存在于内存中

  • final 在第一次使用时才在内存中加入

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值