繁体   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