java_in_hours_chn
java_in_hours_chn copied to clipboard
编写一个Kotlin版本, 主要目标读者仍是零编程基础的群体
之前与@chpengzh 提到, 写成后考虑发到kotliner社区. 另 @ice1000. 如果只是把这个教程的代码改为Kotlin版的, 不知是否合适? 另外, 个人对Kotlin没有经验, 写出的代码不知能否麻烦各位审核一下?
可以改,Kotlin本来就是一个很简单的语言
没什么好审核的,你少写点null和问号就是好的,不要写感叹号
你少写点null和问号就是好的,不要写感叹号
请教深意? 比如这节的示例:
for (int 序号 = 0; 序号 < 二队.length; 序号++) {
if (二队[序号] != null) {
二队[序号].自我介绍();
}
}
如何改进呢?
二队.forEach { it?.自我介绍() }
不使用forEach的话也可以
for (int 序号 = 0; 序号 < 二队.length; 序号++)
二队[序号]?.自我介绍();
Kotlin有意让你少让null出现,尽可能让全世界的变量从一开始就有值。 感叹号是Kotlin提供的一个绕过这个检查的脏方法,是临时解决方案,是不推荐的,故意把这个语法搞的很丑的,因此应该尽量少出现
你先写,遇到问题问我就是
多谢! 代码应该会比Java版的短不少. 现在感觉我这样Kotlin新手写教程好像有点勉强...
你先写,遇到问题问我就是
不要小看我,我可是写过一个完整的Kotlin Parser的人(是Parse Kotlin,不是用Kotlin Parse)
Kotlin有一个好处,就是 extension 。比如你上面那个代码不可避免的要出现.length,可以这样解决
val Array<队的类>.长度 = this.length;
for (int 序号 = 0; 序号 < 二队.长度; 序号++)
二队[序号]?.自我介绍();
还忘了个事,Kotlin没有这种三段式的for循环,一般写
val Array<队的类>.长度 = this.length;
for (序号 in 0..二队.长度)
二队[序号]?.自我介绍();
这个 in 就真的没办法了,这是一个语法
咳咳, 所以说...我写的kotlin代码多半是要麻烦审核的. 不过extension也许不会囊括在这样的"一天入门"里. 请问对示例代码的主题有没有什么意见? 这个版本里是尽量用与"人"相关的, 然后最后一个聊天程序里尽量包括一些之前的知识点.
还没看,等会看
已开新代码库https://github.com/program-in-chinese/kotlin_in_hours_chn, 基本按照Java版的例子进行.
@ice1000 @chpengzh 感觉有烂尾的可能, 就先发了论坛帖: https://kotliner.cn/post/6335893405691236352. 先看看反馈吧.
我没有write access。请在README里面添加代码块高亮谢谢。
@ice1000 多谢! 刚加了, 也加了write access.