在飛鏢中,有一個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