在飞镖中,有一个var
,这意味着dynamic type
。当声明一个局部变量时,最好在Dart中声明类型或使用`var`?
当声明一个局部变量,我可以这样写:
String name = "Freewind";
或
var name = "Freewind";
起初我还以为他们是一样的,因为编辑器应该能够推断name
类型是String
,但我很快发现:
void hello(String name) { print("hello, $name"); }
int n = 123;
hello(n); // editor will give an warning here
var m = 456;
hello(m); // but will not here
我试了Dar tEditor(基于eclipse)和IDEA,发现既没有在hello(m)
上发出警告。看起来他们把m
当作dynamic
,而不是int
,所以他们不给出警告。
如果我理解正确,我们应该尽可能地声明类型以获得类型安全检查,对吧?但我喜欢var
,因为它更短,不需要复制类型信息。
或者仅仅因为Dart的编辑不够强大而没有警告我们会在将来发出警告?
只是为了检查 - 你的意思是'无效你好(姓名:字符串)'或'无效你好(字符串名称)'? –
对不起,我把dart与scala混合:) – Freewind