最近项目里已经开始用上 Kotlin 了,刚开始写还有些变扭,但是写个一天两天,一个礼拜就顺手了,而且还有点上瘾了。
基础是关键
越是基础的东西越是重要,因为那更接近本质,所以我学 Kotlin 的第一步就是先看基础语法,对照 Java 来对比不同之处。但也不是光学语法基础,也要通过实践去理解,毕竟看基础的书籍很是枯燥。
思想是精髓
有的人说 Kotlin 的代码和 Java 很像,看看就会了,况且 Android Studio 也提供了转换功能,直接一转就可以了。
我却觉得这样做就是个搬运工,语言的不同带来的是思想表达的不同,就拿 C 和 C++ 来说,相似不,但思想一样吗?王全不同。同样 Kotlin 也有自己的思想表达,我觉得就是需要我们利用其特性,与 Java 与众不同的地方,去表达。举个例子 if-else 在 Kotlin 里是有返回值的,是表达式,不再仅仅是判断语句。
实践出真知
理论的东西再怎么探讨,那都是纸上谈兵,是骡子是马还得拉出来溜溜。所以我学习了函数和类的基本知识后就上手项目了,这样一来不但能加深印象,还能加深理解。
举个例子,
override fun getViewType(position: Int): Int {
//大概的意思是这样,就是从集合中取出 position 位置的元素
//判断元素类型并根据类型返回类型值
//考虑到 if-else 是表达式嘛,我就天真的这么写了
//但实际运行告诉我不是这样的,结果都执行最后一句了
val item = getPosition(position)
if(item is String) {
1
} else {
2
}
return super.getViewType(position)
}
//其实我的理解没错就是写法错了
override fun getViewType(position: Int): Int {
//调整代码后,这样写就能按我们要求返回具体类型值了
return if(getPosition(position) is String) {
1
} else {
2
}
}
可见如果不拿到实际项目中去检验,就没办法知道原来你理解的写法是错的。
总结
宏观上看语言是相同的,但各自的特性又体现着各自的思想表述,学编程语言还是要掌握思想,不断实践。但思想本就是个看不见摸不着的东西,如何掌握,只有多写多反思了。
网友评论