kotlin第三篇

在用kotlin写了一段时间之后,重新回过头来总结一下kotlin的语法吧

基础语法部分

  • 可变长参数,修饰符vararg
fun vars(vararg v:Int){
    for(vt in v){
        print(vt)
    }
}
  • lambda(匿名函数)
val sumLambda: (Int, Int) -> Int = {x,y -> x+y}
println(sumLambda(1,2))  // 输出 3
  • 字符串模板
${varName.fun()} 表示变量的方法返回值:

基本数据类型

  • 可以用下划线使数字变量更方便读
val oneMillion = 1_000_000
val creditCardNumber = 1234_5678_9012_3456L
val socialSecurityNumber = 999_99_9999L
val hexBytes = 0xFF_EC_DE_5E
val bytes = 0b11010010_01101001_10010100_10010010
  • 位操作符
shl(bits) – 左移位 (Java’s <<)
shr(bits) – 右移位 (Java’s >>)
ushr(bits) – 无符号右移位 (Java’s >>>)
and(bits) – 与
or(bits) – 或
xor(bits) – 异或
inv() – 反向
  • 数组

    • 使用函数arrayof()创建
      val a = arrayOf(1, 2, 3)//[1,2,3]
    • 使用工厂函数创建
      val b = Array(3, { i -> (i * 2) })//[0,2,4]
    • [ ] 运算符代表调用成员函数 get() 和 set()。
    • 除了类Array,还有ByteArray, ShortArray, IntArray,用来表示各个类型的数组
  • 字符串

    • String 可以通过 trimMargin() 方法来删除多余的空白。
    • 默认 | 用作边界前缀,但你可以选择其他字符并作为参数传入,比如 trimMargin(“>”)。
      val text = """
      |多行字符
      |多行字符串
      |Runoob
      """.trimMargin()

循环控制

  • kotlin取消了for一般循环
  • 如果你想要通过索引遍历一个数组或者一个 list,你可以这么做:
for (i in array.indices) {
    print(array[i])
}
  • 标签处返回(类似于C语言的goto语句吧)
fun foo() {
    ints.forEach lit@ {
        if (it == 0) return@lit
        print(it)
    }
}
//它只会从 lambda 表达式中返回
  • 隐式标签返回
fun foo() {
    ints.forEach {
        if (it == 0) return@forEach
        print(it)
    }
}
//它只会从 lambda 表达式中返回
  • 带值从标签处返回
return@a 1
//意为"从标签 @a 返回 1",而不是"返回一个标签标注的表达式 (@a 1)"

猜你喜欢

转载自blog.csdn.net/asffghfgfghfg1556/article/details/79685996