簡體   English   中英

為什么 Dart 更喜歡省略局部變量的類型注釋?

[英]Why does Dart prefer omitting type annotations for local varibles?

我已經使用 dart 一段時間了,只是想知道不使用類型注釋的偏好,我個人覺得它更容易理解,如果我可以看到類型注釋而不想知道某些變量是什么類型,我個人會發現它更容易理解和 go 返回我的代碼。 有理由更喜歡 var 而不是直接類型注釋嗎?

為什么是這樣:

var match = regexp.firstMatch('Regex Match');

比這個更可取:

RegExpMatch match = regexp.firstMatch('Regex Match');

爭論是額外的冗長通常不值得它自己的重量。

除非您命名每個中間值,否則您已經可以毫無問題地使用無類型表達式。 說:

myThingie.flooTheFloo().biz.baz.fixIt();

這里有四個中間值,您沒有給它們命名和類型,我們通常不認為這是一個問題。 如果你把它寫成;

var v1 = myThingie.flooTheFloo();
var v2 = v1.biz;
var v3 = v2.baz;
var v4 = v3.fixIt();

沒有特別的理由讓您突然需要以前不需要的類型。

可以說,將類型放在變量上不如將類型放在匿名中間結果上重要,因為前者的名稱提供了更多信息。 如果名稱具有足夠的描述性,則不應同時需要名稱和類型。

然后有人爭辯說那些 arguments 都很好,但有時你還是想給某物一個類型,因為那個案例從上下文或名稱中不清楚。 沒關系, 風格指南只說“避免”,而不是“不要”,這意味着可能存在其他原因勝過風格指南建議的情況。

我個人習慣於編寫類型,並且很難不這樣做(尤其是int ,它在我什至沒有想到它之前就從我的手指中流出,)但是,我嘗試在不鍵入局部變量的情況下編寫 Dart 代碼,並且在實踐它一直不是問題。 很多人都有同樣的經歷。 (我想我們會看到當我 go 在 6-12 個月內再次回到該代碼時會發生什么。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM