作者回复: 很好的补充,感谢建议,记下了。
作者回复: 赞!
作者回复: 是的,这样一来,对开源库的维护者来说,有了更高的要求,我们需要明确自己的代码中哪些是封闭的,哪些是开放的。 表面上看,Kotlin变得麻烦了。不过,反过来看,这难道不就是维护者本来就该弄清楚的问题吗?其实,这个问题一直存在,只是因为Java选择忽视这个问题,而Kotlin的选择是面对这个问题。
作者回复: 请注意:枚举类没办法和数据类进行结合,来承载我们的网络请求数据。但是密封类可以。
作者回复: 有的,我们可以通过元编程来解决。这个问题我会记录下来,后面找机会跟大家分享一下。
作者回复: 并不是说所有的密封类都要用data class,只是在这个案例当中,我们是用来承载网络请求数据的。既然是承载数据,当然就要用数据类啦!至于如何正确定义密封类,其实文章当中的这种模式就是最常见,也是最使用的方式。
作者回复: 按照顺序的,这一点我们写一个简单的代码就可以验证。 // 不推荐, val (age, name) = Person1("tom", 1) println(age) println(name) 但是,正确做法,我们应该是让变量名与顺序都一致。
作者回复: 写文章的时候为了突出重点忘记兼顾语法了,我重新调整一下。感谢你指出这个问题,你让这个课程变得更好了。
作者回复: 枚举类、密封类的特点就是when表达式“自动判断完备”,咱们自己写的继承类,是不具备这一优势的。别小看“自动判断完备”,它的作用很大。
作者回复: 嗯,不错。