mie*_*sol 21
在科特林编码约定明确指出:
- 使用camelCase作为名称(并避免使用名称中的下划线)
- 类型以大写字母开头
- 方法和属性以小写字母开头
如果你按照上面的和治疗constructor作为常规功能,可以调用即val invoice = Invoice()该new关键字变得多余.一旦你适应了约定,就可以清楚地看到代码正在做什么.
事实上即使在Java代码中,你也会有很多隐式分配,这些分配恰好发生在方法调用之下,例如Collections.singleton(o)Guava,Lists.newArrayList()所以我不认为你的关于分配可见性的论点更好,new关键字是完全有效的.
vod*_*dan 14
(IMO)这样做是因为函数和对象构造之间没有真正的区别,即没有什么能阻止函数分配对象(而且它们经常这样做).
一个很好的例子是工厂功能.这些函数创建新对象,但它们绝不是类构造函数.
AFAIK,new关键字的创建是因为C\C++的负面体验,其中返回新对象的函数必须经过特殊标记(按名称约定),以免忘记(手动)释放内存.在像Java\Kotlin这样的自动内存管理语言中,它不是一个问题.
| 归档时间: |
|
| 查看次数: |
5112 次 |
| 最近记录: |