1. 变量声明 var dynamic String
Dart 虽然是强语言类型,但是可以使用var 但不是说他不指定变量类型,而是他会自动推断变量类型,
dynamic 才是动态类型,在编译过程中他会被编译成object 类型,他是通过运行时对类型进行检查.
String 和java 一样,直接声明变量类型为字符串
举个例子
开始没有定义a的类型, 后来将他置位空串,再执行int的 ++方法就会报错
意思就是int 不是string 的子类型
2. 方法与变量的作用域
在java中方法与常量的作用域有 public private protect
Dart中的公开变量 var a=1;
但是在dart 中"_" 下划线 开头的方法或者变量则为私有变量,
用@protected修饰的变量和方法则为收到保护的变量,在外部路径访问会报错
举个栗子 这个是方法的,变量同理
3.final与const 类型的差异
在java中用final修饰的边变量无法被修改,Dart中也同样的原理,一个被final修饰的bean或者map,他本身是不可以修改的,但是他的属性或者键值是可以修改的,在Dart中新增了const 修饰符,被const 修饰符表示静态常量,在编译期就已经确定了,而final修饰的变量是在运行时才确定的,也就是说被const修饰的bean和map,也不可以改变他的属性或者键值
我学习flutter的整个过程都记录在里面了
https://www.jianshu.com/c/36554cb4c804
最后附上demo 地址
网友评论