前言
Kotlin学习笔记
下载依赖
MacOS
查看版本
编译
Main.kt:Kotlin源码
Main.jar:Java可执行文件
1
| kotlinc Main.kt -include-runtime -d Main.jar
|
注释
主函数
Main.kt1 2 3
| fun main(args: Array<String>) { ... }
|
行末分隔符
- 使用
;作为行末分隔符,单行代码可以省略,多行代码写在同一行必须添加
输出语句
格式化输出
输入语句
1
| var 变量名: String = readln()
|
变量
声明变量
定义变量
自动类型推导
常量
定义常量
数据类型
整型
| 类型 |
描述 |
取值范围 |
值表示方法 |
UByte |
无符号8位整数 |
0~255 |
0u |
UShort |
无符号16位整数 |
0~65535 |
0u |
UInt |
无符号32位整数 |
0~4294967295 |
0u |
ULong |
无符号64位整数 |
0~18446744073709551615 |
0u、0uL |
Byte |
有符号8位整数 |
-128~127 |
0 |
Short |
有符号16位整数 |
-32768~32767 |
0 |
Int |
有符号32位整数 |
-2147483648~2147483647 |
0 |
Long |
有符号64位整数 |
-9223372036854775808~9223372036854775807 |
0L |
自动类型推导
推导为Int
推导为Long
推导为ULong
二进制数
八进制数
十六进制
区间
闭区间
1
| var 变量名: IntRange = 1..10
|
半开区间
1
| var 变量名: IntRange = 1 until 10
|
浮点型
| 类型 |
描述 |
值表示方法 |
Float |
32位浮点型数 |
0.0f |
Double |
64位浮点型数 |
0.0 |
单精度浮点型
双精度浮点型
布尔型
字符型
1
| var 变量名: Char = '\u0061'
|
字符串
原始字符串
- 原始字符串会保留空白字符、换行符、制表符
- 原始字符串会忽略字符串中的转义字符
模板字符串
1 2
| var s = "" var str = "${s}字符串"
|
1 2
| var s = "" var str = "$s 字符串"
|
为数据类型定义别名
长数字分隔符
英式数字分隔法
1
| var oneBillion = 1_000_000_000
|
中式数字分隔法
1
| var oneBillion = 10_0000_0000
|
应用于二进制数
1
| var binary = 0b0000_0000
|
应用于十六进制数
1
| var hexadecimal = 0xFFFF_FFFFu
|
运算符
算术运算符
+、-、*、/(整除)、%(取余)、++(自增)、--(自减)
赋值运算符
关系运算符
逻辑运算符
按位运算符
shl(有符号数左移)、shr(有符号数右移)、ushr(无符号数右移)、and(按位与)、or(按位或)、xor(按位异或)、inv(按位取反)
将1左移1位
将1按位取反
包含运算符
分支语句
if
1 2 3 4 5
| if (布尔表达式) { ... } else { ... }
|
1 2 3 4 5
| if (布尔表达式) { ... } else if (布尔表达式) { ... }
|
1 2 3 4 5
| if (布尔表达式) { if (布尔表达式) { ... } }
|
省略大括号
1 2 3 4
| if (布尔表达式) ... else ...
|
1 2 3 4
| if (布尔表达式) ... else if (布尔表达式) ...
|
1 2 3
| if (布尔表达式) if (布尔表达式) ...
|
返回值
1 2 3 4 5
| var 变量名 = if (布尔表达式) { 返回值 } else { 返回值 }
|
when
1 2 3 4 5 6 7 8 9 10 11
| when (变量名) { 值1 -> { ... } 值2 -> { ... } else -> { ... } }
|
判断范围
1 2 3 4 5 6 7 8 9 10 11
| when (变量名) { in 范围 -> { ... } in 范围 -> { ... } else -> { ... } }
|
省略大括号
1 2 3 4 5
| when (变量名) { 值1 -> 表达式 值2 -> 表达式 else -> 表达式 }
|
返回值
1 2 3 4 5
| var 变量名 = when (变量名) { 值1 -> 返回值 值2 -> 返回值 else -> 返回值 }
|
循环语句
for
遍历可迭代对象
1 2 3
| for (变量名 in 可迭代对象) { ... }
|
遍历区间
从小到大
1..10:区间
1 2 3
| for (变量名 in 1..10) { ... }
|
step 1:步长,缺省值为1
1 2 3
| for (变量名 in 1..10 step 1) { ... }
|
从大到小
1 2 3
| for (变量名 in 1 downTo 10) { ... }
|
1 2 3
| for (变量名 in 1 downTo 10 step 1) { ... }
|
while
do…while
1 2 3
| do { ... } while (布尔表达式)
|
continue
1 2 3
| for (变量名 in 1..10) { continue }
|
1 2 3 4 5
| 循环名@ for (变量名 in 1..10) { for (变量名 in 1..10) { continue@循环名 } }
|
break
1 2 3
| for (变量名 in 1..10) { break }
|
完成
参考文献
哔哩哔哩——青空の霞光