美文网首页
Kotlin Android 语法记录

Kotlin Android 语法记录

作者: 嘉伦哥 | 来源:发表于2018-05-21 16:15 被阅读0次

取消findViewById

在app 中加入applyplugin:'kotlin-android-extensions'
然后再Activity中 直接根据ID 使用界面元素:

tvKotlin.text="name" 

一些常用的语法

1,没有“;” 代码行不需要用 冒号结尾,什么不写就好。
2,“:”的作用和java中(for/switch/三元运算符)不同,在Kotilin里,“:” 作用非常大,包括:
定义变量类型
var name:String="name"//变量name为String类型
定义参数类型(无返回值)
fun getName(id:Int){
}
定义函数的返回值 
fun getName(id:Int):String{
//返回值为String类型
}
声明类或接口的继承或实现
class  KotlinActivity:
AnkoComponent<KotlinActivity>{//继承AnkoComponent接口
使用Java类
val intent =Intent(this,MainActivity::class.java)
//需要::来使用java类

3,没有了new 关键字

Kotlin实例化一个对象时,不需要new

var list=ArrayList()

4,常量 变量符

用var定义变量
var name:String="Name"
用val定义常量 (final)
val name:String="Name"
当然 Kotlin是支持类型推断的,也就是说 数据类型 咱不用写如:
var Name="Name"

val Name="Day"

5,必须初始化

在java中,我们可以定义一个变量, 如int和boolean 会默认是 0或 false
而在Kotlin中必须给变量赋值,如果只写一个变量 却不赋值如:

var name
 编译器就会报错,提示未初始化,你必须赋值为0或者null,或者别的值。

6,空指针安全

在Kotlin里,可以用?号表示可以为空,也可以用!!表示不能为空。
空指针安全并不是不需要处理空指针,你需要用"?"声明某个变量允许为空指针,如:

var num:Int?=null
声明允许为空的时候,不能使用类型推断,必须声明其数据类型!!!

空指针虽然安全了,但对空指针的处理还是要视情况而定,有时候不处理,有时候做数据检查,有时候还需要抛出异常,这三种情况可以这么写:

val v1=num?.toInt()//不做处理返回null

val v2=num?.toInt()?:0 //判断为空时返回0

val v3=num!!.toInt()//抛出空指针异常(!!表示不能为空)

7,定义函数

在Kotlin语法里,定义函数的格式是这样的:

fun 方法名(参数名:类型,参数名:类型....):返回类型{

}

如:

fun getName(id:Int,name:String):String{
return "yes"
}

犹豫Kotlin 可以对函数的返回值进行类型推断,所以经常用"="代替返回类型的return关键字,上面这段代码可以写成:

fun getName(id:Int,name:String)={
"yes"
}

如果函数只有一行,那么我们可以去掉{}

fun getName(id:Int,name:String)="yes"

函数也允许空指针安全,在返回值后面增加"?"即可

fun getName(id:Int,name:String):String?="yes"

无返回值时,可以这么写

fun getName(id:Int,name:String):Unit{
//(Unit相当于java的void)
}
或
fun getName(id:Int,name:String){
//什么都不写
}

8,用is取代了instance of

if(a is String)...

9,in 、区间和集合

1..5表示 1-5的整数区间 可以用in(在。。。里面)判断数字是否在某个区间

if(x in 1..5){//检查X 数值是否在1到5区间}

可以用in 判断集合中是否存在某个元素

if(name in list){
// 检查list中是否有某个元素
}

可以用in 遍历整个集合

for(i in 1..5){
//遍历1-5
}

for(item int list){
//遍历list中每个元素 相当于(for(String item:list))
}

in 在便利集合时功能很强大:
在遍历集合时,可以从第N项开始遍历:

for(i in 3..list.size-2){
//相当于 for(int i=3;i<=list.size()-2;i++)
}

可以倒序遍历

for(i in list.size downTo 0){
//相当于for(int i=list.size;i>=0;i--)
}

可以 反转列表

for(i in (1..5).reversed())

10,用when取代switch

switch 在java 里一直不怎么给力 在老版本 不支持String
Kotlin 干脆用强大的when 取代了switch:

fun when(obj:any){
when(obj){
1->"is Int"
in 2..5->"在2和5之间"
else->"as default" //用else 代替switch的default 
}
}

参照大佬 [蓝灰_q]

参考链接

https://www.jianshu.com/p/bb53cba6c8f4

相关文章

网友评论

      本文标题:Kotlin Android 语法记录

      本文链接:https://www.haomeiwen.com/subject/jvmfjftx.html