美文网首页
Kotlin基础

Kotlin基础

作者: 闪客飞飞 | 来源:发表于2020-12-21 16:47 被阅读0次

1.基本要素 :函数与变量
变量:val 不可变引用。使用val 声明的变量不能在初始化之后再次赋值,对应的是java final 类型。
常量:var 可变引用,这种值变量的值可以被改变,这种声明对应的是Java 非final 类型。
默认情况下尽量使用val 使用不可变引用不可变对象以及无副作用的函数可以让你的代码更接近函数式编程
备注:尽量使用val引用自身是不可变的,但是他指向的对象是可能改变的。
即使var 关键字允许变量改变自己的值但是他的类型是不可变的。

2.表示和处理的选择 :枚举 和 when
enmu class Color{RED,ORGANE,YELLOW}
声明一个带属性的枚举类
enum class Color(val r:Int,val g:Int,val b:Int){
RED(255,0,0),ORANGE(255,165,0);
fun rgb()=(r255+g)255+b
}
枚举常量用的声明构造方法和属性的方法,当声明每个枚举常量的时候必须提供该常量的属性值,这里用到kotlin 中唯一必须使用分号的地方,

when(){
case->code
}

1.when 可以合并多个分支 case,case,case->
2.导入枚举常量后不用限定词就可以访问。

IN关键字
in 关键字检查集合与区间的成员 m in ’a‘..’z‘
in 作为when 的分支
when(c ){
in ’0‘..'9'-> code
}

异常:
try 作为表达式
val name=try{ code }catch(e:Exception ){return }

小结:
1.fun 关键字用来声明函数,var val 关键字用来声明可变变量和只读变量。
2.字符串模板帮助避免复杂的字符串链接,在变量名称的前面添加 ${}.
3.if 带返回值的表达式
4.when 表达式是比switch 更加强大
5.简单语法创造一个区间,可以使用in !in 判断一个对象是否处在某个区间之内
6.异常与java 类似但是可以作为表达式

扩展函数和属性
fun String.lastChar():Char=this.get(this.length-1)
接收者类型 接收者对象
导入扩展函数 String.lastChar

扩展函数实际就是静态函数的高效的语法糖。
扩展函数的性质也决定了扩展函数不能被子类重写。扩展函数不可重写

扩展属性
val String.lastChar:Char
get()=get(length-1)
声明一个可修改的扩展 属性
var StringBuilder.lastChar:Char
get()=get(length-1)
set(value:Char){ this.setlCharAt(length-1,value)}

处理集合 :可变参数,中缀调用,
1.可变参数的关键字 vararg 用来声明一个函数可能有任意的参数
2.中缀调用可以与只有一个参数的函数一起调用,要使用中缀调用符号需要使用infix来标记它,
infix fun Any.to(other:Any)=Pair(this,other)
val (number,name)=1 to "one"

分割字符串
关键字 Regex
"string".splite(",.-".toRegex())
String.substringBeforeLast("")
String.substringAfterLast("")

提取局部函数避免重复,在局部函数中访问外部函数的参数
提取扩展的局部函数到扩展函数

小结:
1.Kotlin没有自己的数据集合类,而是在java 的的集合类上提供了丰富的API
2.函数参数定义默认值
3.扩展函数和属性可以扩展任何类的,不需要修改源码也没有任何开销。
4.正则表达式
5.局部函数保持代码整洁避免重复

相关文章

网友评论

      本文标题:Kotlin基础

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