type
status
date
slug
summary
tags
category
icon
password
归纳自runoob.com
一、基础语法
文件与包声明
Kotlin源文件以 .kt 为后缀。包声明位于文件顶部,用于组织代码命名空间。
要点:
- 源文件可以放在任何目录,不强制要求与包名匹配的目录结构。
- 没有指定包名的文件属于默认包(不推荐在生产环境中使用)。
- 每个Kotlin文件都会默认导入一系列核心包(如
kotlin.*,kotlin.collections.*等)。
变量声明
Kotlin使用
val和 var关键字声明变量,支持类型推断。核心区别:
val(value):类似Java的final变量,只读,一旦赋值不可更改。
var(variable):可变变量,值可以重新分配。
最佳实践: 优先使用
val以确保状态不可变,提升代码安全性。函数定义
使用
fun关键字定义函数。空安全设计
Kotlin的类型系统旨在消除空指针异常(NullPointerException)。
处理可空返回值的函数:
字符串模板
使用
$符号在字符串中嵌入变量或表达式,简化字符串拼接。类型检查与智能转换
使用
is和 !is进行类型检查,检查成功后编译器会自动进行智能转换。区间与循环
Kotlin提供了直观的区间表达式,常用于循环和条件判断。
条件表达式
if和 when在Kotlin中不仅是语句,还可以是表达式(有返回值)。其他重要语法
- 注释: 支持单行(
//)和多行注释(/* ... */),且块注释允许嵌套。
- 相等性判断: 使用
==检查结构相等(相当于调用equals()),使用===检查引用相等。
- Lambda表达式: 一种简洁的匿名函数写法。
二、基础数据类型
基本数据类型概览
Kotlin的基本数据类型可分为以下几类,与Java不同,所有类型都是对象:
类别 | 数据类型 | 位宽 | 范围/描述 |
整数类型 | Byte | 8位 | -128 到 127 |
ㅤ | Short | 16位 | -32,768 到 32,767 |
ㅤ | Int | 32位 | -2³¹ 到 2³¹-1 |
ㅤ | Long | 64位 | -2⁶³ 到 2⁶³-1 |
浮点类型 | Float | 32位 | 6-7位有效数字 |
ㅤ | Double | 64位 | 15-16位有效数字 |
其他类型 | Char | 16位 | Unicode字符 |
ㅤ | Boolean | - | true/false |
ㅤ | String | - | 字符序列 |
数值类型详解
a、整数类型
类型推断规则:
- 未超出Int最大值(2147483647)的整数值默认为Int类型
- 超过Int最大值则推断为Long类型
- 数字后加
L显式表示Long类型
b、浮点类型
重要特性:
- Kotlin对小数默认推断为Double类型
- Float类型精度约为6-7位十进制数字,超出部分会精度丢失
- 不存在隐式拓宽转换,必须显式指定类型
字面常量表示法
Kotlin支持多种字面常量表示方式:
类型转换
a、显式类型转换
Kotlin不支持隐式类型转换,必须使用转换函数:
常用转换函数:
toByte(),toShort(),toInt(),toLong()
toFloat(),toDouble(),toChar()
b、自动类型转换场景
在特定上下文环境中,Kotlin会自动进行类型转换:
字符类型(Char)
与Java的区别:
- Char不能直接当作数字使用
- 必须用单引号括起来
- 支持Unicode转义序列
字符串类型
a、字符串表示
b、字符串模板
数组类型
a、数组创建方式
b、数组操作
类型比较与相等性
a、比较运算符
b、结构相等 vs 引用相等
位运算
Kotlin使用中缀函数进行位运算,而非符号:
位运算函数:
shl(bits)左移
shr(bits)右移
ushr(bits)无符号右移
and(bits),or(bits),xor(bits),inv()
关键特性总结
- 全对象化:所有基本类型都是对象,具有方法和属性
- 无隐式转换:必须显式进行类型转换,提高类型安全性
- 类型推断:编译器能自动推断变量类型,代码更简洁
- 空安全:可空类型需要显式声明(如
Int?)
- 数组不协变:与Java不同,Kotlin数组是不协变的
- 作者:holmes
- 链接:http://jokersh.me/article/2d154800-66d1-8053-8314-fa85f972198a
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。

