kotlin:静态属性_Kotlin月刊4:属性

kotlin:静态属性

介绍

在Kotlin月刊系列的第四篇也是最后一篇文章中,我们将了解Kotlin的广泛总体功能,并与其他一些功能紧密结合:属性。 除了提供所有语言提供的属性的明显好处外,Kotlin还通过Delegated Properties提供了可重用的属性,以及用于区分只读属性和完整属性的非常干净的语法。

Kotlin使创建干净的表达特性变得非常容易。 varval做到了,所以我们不必记住将字段标记为final 。 根据情况,也可以省略该类型。

比大多数其他属性语法更简洁

与我见过的任何其他语法相比,Kotlin的属性极其简洁。 原因如下:

  • 在Kotlin中,我们不需要为属性声明后备字段,尽管在需要时我们可以将后备属性用于更复杂的实现。 如果您需要访问getter和setter方法中的后备字段,只需将其称为field
  • 在Kotlin中,除非我们实际上定义了getset的替代实现,否则不需要键入它们; varval用于确定它是只读还是读写。
  • 如果直接从主构造函数初始化属性而不进行检查或更改,则可以在主构造函数的参数列表中简单地声明该属性。 有关更多信息,请参阅Kotlin的构造函数官方文档
  • 如前所述,如果我们立即为其分配值,则甚至无需指定属性的类型(这仅适用于在类主体中声明的属性,而与在主声明中声明的属性相反)构造函数)。
  • 委托的属性 。 如果最终对多个属性的getter和setter使用相同的代码,则可以将该代码提取到委托的属性中,该属性只是一个定义getValue(...)运算符函数以及setValue(...) ]运算符功能。 它们与Python中的描述符非常相似,除了每个实例一个,而不是每个类一个。 要使用它们,我们用正常体属性定义,其次是by与委托财产类的一个实例。 Kotlin中一些内置的委托属性类型包括lazy ,它使我们可以延迟实例化属性中的值。 observable ,使属性可观察; 并通过一些扩展功能使用Map
不太好的部分

不过,关于Kotlin的物业,还有一些不太好的事情。 第一个事实是类定义行可能会变得毫无用处地变长。 这是因为这一行包含classclass的名称,任何类型参数(泛型),主要构造函数参数列表以及任何继承。 现在,即使这些很简单,但如果构造函数中有两个以上的属性,则该行也可以轻松清除80个字符,尤其是在存在某些继承的情况下。 如果需要将可见性修改器应用于任何对象,则它变得更长。 类,构造函数(不仅需要可见性修饰符,还需要constructor关键字以显示该修饰符正应用于该属性)或属性–由于valvar已经比典型参数var关键词。 幸运的是,Kotlin放弃了extendsimplements关键字,而支持: 。 如果我们仍然使用这些关键字,那么这些行将非常长。

将类定义行分成多行会有所帮助,但是将继承内容放在末尾总是有点尴尬。 如果需要,我有点想在类名和类型参数后面加上它。 那好吧。

另一个问题来自这样一个事实,即可能有两个不同的位置来定义属性:在主构造函数中或在类主体中。 这有时会使查找属性变得更加困难。 我认为需要在其中提出一个约定,规定如果您在类主体中定义了任何(公共?)属性,则应在此处定义所有属性。 它最终会带来更多的类型输入(但仍然少于Java或C#,因为您可以在主构造函数中将属性设置为等于参数),但是通过仅在一个位置查找属性来澄清代码。 构造函数中没有? 那么它们必须全部在体内。 这也可以防止私有属性通过可见性修饰符延长类定义线的长度。

Kotlin月总结

我们已经看过许多我最喜欢的Kotlin功能,但是还有很多值得一看的地方,因此,如果您不熟悉Kotlin,请查看它们的文档。 太好了,并且可以让您假设他们没有解释的其他事情就像在Java中一样,因此可以保持简短。 实际上,我已经阅读了整整两遍。 确实写得很好;

如果我只能从Kotlin拿到4种东西并放入Java中,那么按照“重要性”的顺序将是:

  1. 扩展方法
  2. 一流的代表团
  3. 物产
  4. 简单的主构造方法(它可能与Kotlin有所不同,只是为了更好地使用Java的现有语法,并希望避免冗长的类声明行)

奥托罗

所以,这是本帖以及Kotlin月的结尾! 系列。 但这绝对不是我赞扬科​​特林的目的。 实际上,我已经提交了摘要,以便在那次会议上就Kotlin进行演讲。 这是一篇介绍Kotlin的演讲,之前(除非我决定在进行此操作的同时 )介绍了将Java代码迁移到Kotlin的步骤。

对于那些懒于单击链接的人,那次会议是8月8日至10日在威斯康星州戴尔斯市(威斯康星州中部偏南)的开发人员会议。 在室内主题公园/水上乐园。 多么酷啊。 我希望在那里见到你们!

翻译自: https://www.javacodegeeks.com/2016/03/kotlin-month-post-4-properties.html

kotlin:静态属性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值