0%

dart学习笔记

知识点

1、js和dart中var什么区别?dart语言中,var和dynamic类型有什么区别?

dart中的var不同于javascript的var,js是动态语言,变量类型可变是弱类型,
dart的var初始化赋值后不可改变类型,但是如果不赋值,它就和dynamic一样了,这点设定个人觉得很奇怪
dart中dynamic不受限制,从这一点来说,dart中的dynamic更像js中的var或者let

1
2
3
4
5
6
7
8
9
10
11
12
//dart
var a = 'str';
a = 23; //error
a = 'ooooppp'; //ok

var b = null;
b = 23; //ok
b = 'ooooppp'; //ok

dynamic c = 'str';
c = 23; //ok
c = 'ooooppp'; //ok

2、函数定义传参大括号作用是什么?

大括号的作用是传参时可以指定名称,不用管顺序

大括号和中括号貌似不能同时用
talk is cheap,show me the code
1
2
3
4
5
6
7
8
9
10
//正常
void fn(String a,int b){
print('$a---$b');
}
fn('aa',2);
//大括号的作用
void fn({String a,int b}){
print('$a---$b');
}
fn(b: 9,a: 'www');

3、const和final

const和final在dart中的定义是使用过程中从来不会被修改的变量
值不能改,但是内部数据可以改

1
2
3
4
5
6
7
8
final String nickname = 'Bobby';
nickname = 'amy'; //error
const String cname = 'rabbit';
cname = 'pig'; //error

final List nickname = ['a','b','c'];
nickname = ['s','b','c']; //error
nickname[0] = 's'; //ok
const必须在编译时就有值,final则是在运行期有值即可
1
2
final nowtime = new DateTime.now();//ok
const time2 = new DateTime.now();//error

4、私有变量

dart中的私有变量在同一个文件中是可以访问的,如果是在引用文件中则不可使用,
但是给这个私有变量增加get和set方法之后就行了