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在主构造函数之后执行
相关推荐
nice_lcj5208 分钟前
【从零理解 Spring AI · 03】Spring AI 在 Spring 生态里的位置
java·spring boot·大模型·spring ai·ai应用开发
0xBADCODE14 分钟前
2026 强网杯 Web 题 cwp · 全链路复盘
前端·安全·web安全·网络安全·系统安全·ctf
麦麦麦当劳大王9 小时前
【油猴脚本】Boss直聘 岗位职责复制
开发语言·前端·javascript
小lu飞10 小时前
2026小红书小工具怎么制作:纯前端 ZIP 打包、沙箱限制与笔记挂载流程
前端·笔记·ai·ai编程
smallcelebration10 小时前
151 从0开始搭建后端项目
前端·firefox
wangruofeng10 小时前
手机和电脑传文件,除了微信还有 LocalSend
前端
码农小河6610 小时前
基于SSM+JSP的高校专业信息管理系统【附源码+数据库】
java·开发语言·数据库
excel11 小时前
基于 GPT 的自动发布文章接口方案:从一句话或一张图片生成并发布内容
前端·javascript·后端
其实防守也摸鱼12 小时前
个人学习 Pwn 思路:从基础到漏洞利用的进阶路径
大数据·前端·人工智能·chrome·算法·安全·网络安全
风若飞12 小时前
Spring Ai 入门遇到问题1
java·后端·spring