jos*_*tit 3 oop types annotations var dart
我已经使用 dart 一段时间了,只是想知道不选择类型注释的偏好,我个人发现,如果我可以看到类型注释而不想知道某些变量是什么类型,那么我个人会更容易理解并返回我的代码。是否有理由更喜欢 var 而不是直接类型注释?
为什么是这样:
var match = regexp.firstMatch('Regex Match');
Run Code Online (Sandbox Code Playgroud)
比这个更好:
RegExpMatch match = regexp.firstMatch('Regex Match');
Run Code Online (Sandbox Code Playgroud)
争论的焦点是额外的冗长通常不值得其本身的重量。
除非您命名每个中间值,否则您已经可以使用无类型表达式而不会出现问题。说:
myThingie.flooTheFloo().biz.baz.fixIt();
Run Code Online (Sandbox Code Playgroud)
这里有四个中间值,您没有为其指定名称和类型,我们通常不认为这是一个问题。如果你把它写成;
var v1 = myThingie.flooTheFloo();
var v2 = v1.biz;
var v3 = v2.baz;
var v4 = v3.fixIt();
Run Code Online (Sandbox Code Playgroud)
没有什么特别的理由让你突然需要以前不需要的类型。
可以说,将类型放在变量上不如将类型放在匿名中间结果上重要,因为前者的名称提供了更多信息。如果名称具有足够的描述性,则不应同时需要名称和类型。
然后,有些人认为这些论点都很好,但有时您无论如何都想给某些东西一种类型,因为从上下文或名称来看,这种情况并不清楚。没关系,风格指南只说“避免”,而不是“不要”,这意味着可能存在其他原因胜过风格指南建议的情况。
我个人习惯于编写类型,并且很难不这样做(尤其是int,在我思考之前它就从我的手指中流出来了!)但是,我尝试过在不输入局部变量的情况下编写 Dart 代码,并且在实践中这不是问题。很多人都有同样的经历。(我想当我在 6-12 个月内再次返回该代码时,我们就会看到会发生什么。)