- 同个.kt文件可以创建多个类,方法等等,没有局限性
class A {
}
class B {
}
fun C() {
}
- 变量
//var关键字代表变量是可变的
var a: Int//定义一个变量,然后接上: 类型
var b: Int = 0//会自动推断b是Int类型,可以省略(var b = 0),其他类型同理
//val关键字代表只读局部变量,只能赋值一次
val c: Int//定义方式与var同理,但只能赋值一次
c = 1//不能再次赋值
var d: String?//指定的类型后面接上?表示这个变量可以为空
- 常量
//定义常量需在val前面加上const
const val d = "123"
4.函数(这只是简单的一些例子)
//fun关键字表示当前是一个函数,后面接上函数名
fun test1(): Unit {
//无参无返回: Unit可省略
// fun test1(){
//
// }
}
fun test2(): Int {
//无参有返回,指定返回类型需在函数名后接上:返回类型
return 0
}
fun test3(a: Int, b: Int): Int {
//有参有返回(参数定义 name:type 多个参数逗号隔开)
return a + b
}
fun test4(a: Int, b: Int = 0): Int {
//可对参数赋默认值,减少重载
return a + b
}
fun test5(a: Int = 0, b: Int): Int {
//如果默认参数在无默认参数之前,那么调用的时候需指定谁来接受它
//test5(b = 1)
return a + b
}
//简写开始o(╥﹏╥)o
fun test6(a: Int, b: Int): Int {
return a + b
}
//把a + b看成一个函数体,返回值肯定是Int与需要的结果返回一致,那么类似于 var a: Int = 0 ,简写 var a = 0,既然能推断,省略
//fun test6(a: Int, b: Int) = a + b
fun test7(a: Int = 0, b: Int = 0, c: () -> Unit) {
}
//如果lambda表达式参数位于最后一位,可以挪到最外层
//test7(1, 1){}
//如果其他参数拥有默认值,也可省略
//test7(){}
//既然参数都没了,()也没用了,省略
//test7{}
网友评论