Kotlin的優(yōu)勢(shì):
1、代碼簡(jiǎn)潔,行數(shù)少殷蛇,減少出錯(cuò)
2火欧、避免NullPointerException
3、findViewById
4境钟、更容易的使用集合
5、不用寫(xiě)Util類(lèi)
一、更簡(jiǎn)單的生成類(lèi):
data class Person(var name: String,
var age: Int,
var height: Float = 1.8f)
二遏餐、避免NullPointerException
val person: Person? = null
...
person?.name = "John"
? 運(yùn)算符強(qiáng)制檢查是否為空,如果是空則不繼續(xù)進(jìn)行
三赢底、擴(kuò)展函數(shù)失都,擺脫util類(lèi)
fun Context.toast(text: String) = Toast.makeText(this, text,
Toast.LENGTH_SHORT).show()
聲明了一個(gè)toast方法,這個(gè)方法的參數(shù)是一個(gè)String類(lèi)型幸冻,這個(gè)方法可以在Activity或者其他Context實(shí)例中直接調(diào)用:
toast("Hi")
四粹庞、findViewById的最新簡(jiǎn)單寫(xiě)法:
button.setOnClickListener { my_text.text = "You've clicked a
button" }
其中第一個(gè)my_text是控件的id
原來(lái)的寫(xiě)法是:
Button button = (Button) findViewById(R.id.button);
final TextView text = (TextView) findViewById(R.id.my_text);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
text.setText("You've clicked a button");
}
});
}
五、使用集合更容易:
var students = listOf(
Student("John", 0),
Student("Julia", 2),
Student("Matt", 1),
Student("Katie", 0),
Student("Dan", 0)
)
var firstList = students.filter { it.mark == 0 }.take(3)
var secondList = students.filter { it.mark == 1 }.take(2)
第一個(gè)洽损,過(guò)濾出分?jǐn)?shù)為0的三個(gè)學(xué)生庞溜;第二個(gè)過(guò)濾出分?jǐn)?shù)為1的兩個(gè)學(xué)生
參考:
kotlin VS java:
http://blog.csdn.net/sergeycao/article/details/54984108
kotlin基本語(yǔ)法:
http://blog.csdn.net/u011976726/article/details/57121052
https://www.zhihu.com/question/32037895
react native
React Native for Android