kotlin官方文档再看下去遭不住了,知识吸收概率太低,并且很多都没有涉及,于是我采用了别人的文字教程,我个人时不喜欢视频教程的,因为视频我概率学不进去。
教程github链接零基础学kotlin
基础变量 var or val
val相当于一个final类型变量,他一个申明就不能改变,而var则可以改变
标准变量格式:
var yu:String="qwe"
定义格式: 关键字 变量名: 数据类型 = xxx
var会自适应变量类型,但是仍旧建议大家使用这个格式来声名变量,这样更符合规范。
代码一行结束后不必刻意加上;,不用加也没有什么问题。
变量可使用?来声明可空变量。
如:
var/val 变量名 : 类型? = null/确定的值
var cout:String?=null
没有这么申明一个可空变量,那么这个变量永远不能等于空。
也可以用
可空类型变量?.属性/方法。如果可空类型变量为null时,返回null
当前面为空时,整个表达式都为空
初始化变量
使用lateinit var 来初始化变量
声名基础类型会报错
如:lateinit var a:Int
但是String类型是不会报错的。
所谓延迟初始化即:指当程序在第一次使用到这个变量(属性)的时候再初始化。
在我看来延迟初始化用来节省资源以及Android组件的声名变量。
延时需要使用新的高级函数 lazy{}
如:
private val msetr:String by lazy{
"延时化变量"
}
必须使用val来定义变量,即就是只读变量。
Kotlin中的 val numA = 6 等价于 Java中的:public final int numA = 6
val的关键词也很有意思,可以看作一个不能修改的变量而已,与常量不同。
倘若想变成不可以重新赋值的常量,需要定义 const标识。
如:
const val nname=1
他只能使用val,并且牢记他只能在顶层或对象内使用
更因为const的缘故,不可以将此行放在函数内。因为他不能用于局部变量。
他还可以声明在object修饰的类和伴生对象中
如:// 2. 在object修饰的类中
object TestConst{
const val B:String = "object修饰的类中"
}
注释和java的差不多,但是多了个嵌套注释,如/*
/*
*/
*/
这样都是可以的。