kotlin基础语法

1.变量

var a:Int = 2 //声明类型的可变变量

var b = 3 //代码推测可变变量类型

val c = 6 //代码推测不可变常量类型

var d:String?=null //可为null的String类型的可变变量

lateinit var e:String //延迟初始化的String类型的可变变量(不能为null)

val f:String by lazy("xxx") //String类型的不可变常量,被访问时会赋值xxx

const val g = 4 //编译期常量

2.函数

fun sum(a:Int, b:Int):Int(

return a+b

)

//fun 函数名(参数1:参数1类型, 参数2:参数2类型):返回值类型
fun div(c:Int, d:Float = 1f) = c+d

//kotlin的函数的参数可以赋初始值,当不传参数时就会使用初始值

//方法也可以直接简写
fun more(vararg a:Int)(

return a.get(0)+...+a.get(xx)

)

//vararg表示可以传多个参数,参数就相当于一个数组

3.语法

除了 for 与 when 其他与Java一致

for( i in 0..10))( printLn(i) ) //左右闭区间

for( i in 0 until 10))( printLn(i) ) //左右开区间

for( i in 0..10 step 2))( printLn(i) ) //0、2、4、6、8、10

for( i in 10 downTo 0 step 2))( printLn(i) ) //10、8、6、4、2、0
when(i){

i is String->{}

i !is Float->{}

i in 0..10->{}

i == 2->{}

else->{}

}

when{

boolean->{}

else->{}

}

  • i is String -> {}:当 i 是 String 类型时执行的代码块

  • i !is Float -> {}:当 i 不是 Float 类型时执行的代码块

  • i in 0..10 -> {}:当 i 在闭区间 [0, 10] 内时执行的代码块

  • i == 2 -> {}:当 i 的值等于 2 时执行的代码块

  • else -> {}:当以上条件都不满足时执行的代码块

  • boolean -> {}:当 boolean 为真时执行的代码块。这里 boolean 是一个布尔值

  • else -> {}:当以上条件都不满足时执行的代码块

4.类

interface AAA{

fun aaa() //需要重写

fun bbb(){} //不需重写

}

  • 实现AAA时,其已经有方法体的方法可以不重写

object Obclass{

fun aaa()

}

  • Kotlin 中的单例对象 Obclass,外部可以直接用object.aaa()来调用其方法

data class AAA(var name:String, var age:Int = 20){

var grade:String = " "

}

  • 数据类,至少有一个参数(所有参数都要声明类型)

sealed class Slclass()

  • 密封类(枚举)

5.构造函数

class AAA(private var b:Int = 1)

class AAA private constructor (var b:Int)

class AAA(){

constructor()

constructor(var b:Int):super()

constructor(var a:String, var b:Int = 20):super()

init{

//初始化

}

}

  • 前两个是只有主构造函数,第三个包含了多个辅助构造函数
  • init在主构造函数之后执行
相关推荐
morris1316 分钟前
【SpringBoot】Xss的常见攻击方式与防御手段
java·spring boot·xss·csp
我要洋人死12 分钟前
导航栏及下拉菜单的实现
前端·css·css3
科技探秘人23 分钟前
Chrome与火狐哪个浏览器的隐私追踪功能更好
前端·chrome
科技探秘人24 分钟前
Chrome与傲游浏览器性能与功能的深度对比
前端·chrome
JerryXZR29 分钟前
前端开发中ES6的技术细节二
前端·javascript·es6
七星静香31 分钟前
laravel chunkById 分块查询 使用时的问题
java·前端·laravel
Jacob程序员32 分钟前
java导出word文件(手绘)
java·开发语言·word
ZHOUPUYU32 分钟前
IntelliJ IDEA超详细下载安装教程(附安装包)
java·ide·intellij-idea
q24985969334 分钟前
前端预览word、excel、ppt
前端·word·excel
stewie636 分钟前
在IDEA中使用Git
java·git