本文最后更新于:1 个月前
Keywords:==、===、显示转换、inv()
位非、arrayOf()
、标签 @
基本类型
数字
- Float 6-7 位十进制数,Double 15-16 位十进制数。
- Kotlin 的数字没有隐式拓宽转换,如果需要可以使用显示转化。
- 数字字面值中可以加入分隔的下划线。
- 可空引用或泛型会把数字装箱。数字装箱**不一定保留同一性(===)。但保留了相等性(==)。
- 显示转换:
toByte() toShort() toInt() toLong() toFloat() toDouble() toChar()
- 整数除法总是返回整数,想要返回浮点类型,需要把其中一个参数显示转换为浮点类型。
- 位运算:
shl()
有符号左移,shr()
有符号右移,ushr()
无符号右移,inv()
非。
数组
- 数组是不型变de,
arrayOf()
库函数创建数组,arrayOfNulls()
创建所有元素为空的数组,或者接受数组大小以及一个函数参数得Array
构造函数,用作参数得函数能够返回给定索引得每个元素初始值:
// 创建一个 Array<String> 初始化为 ["0", "1", "4", "9", "16"]
val asc = Array(5) { i -> (i * i).toString() }
asc.forEach { println(it) }
- Kotlin 也有无装箱开销的专门的类来表示原生类型数组,这些类与
Array
没有继承关系,但有同样的方法属性集,也有对用的工厂方法:
val x: IntArray = intArrayOf(1, 2, 3)
// 大小为 5、值为 [0, 0, 0, 0, 0] 的整型数组
val arr = IntArray(5)
// 例如:用常量初始化数组中的值
// 大小为 5、值为 [42, 42, 42, 42, 42] 的整型数组
val arr = IntArray(5) { 42 }
// 例如:使用 lambda 表达式初始化数组中的值
// 大小为 5、值为 [0, 1, 2, 3, 4] 的整型数组(值初始化为其索引值)
var arr = IntArray(5) { it * 1 }
字符串
- 字符串是不可变的,可以使用索引运算符访问:
s[i]
。 - 原始字符串使用三个引号(
"""
)括起来,内部没有转义并且可以包括换行以及任何其他字符。 - 使用
trimMargin()
函数去除前导空格,默认|
用作边界前缀,但你可以选择其他字符并作为参数传入,比如trimMargin(">")
:
val text = """
|Tell me and I forget.
|Teach me and I remember.
|Involve me and I learn.
|(Benjamin Franklin)
""".trimMargin()
返回和跳转
在 Kotlin 中任何表达式都可以用标签(label)来标记。 标签的格式为标识符后跟 @
符号,例如:abc@
、fooBar@
都是有效的标签(参见语法)。 要为一个表达式加标签,我们只要在其前加标签即可。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!