美文网首页
Kotlin 运算符、符号重载总结

Kotlin 运算符、符号重载总结

作者: ImWiki | 来源:发表于2019-10-07 01:44 被阅读0次
    算数运算符
    名称 符号 方法 用法一 用法二
    + plus var a = 5 + 2 var a = 5.plus(2)
    - minus var a = 5 - 2 var a = 5.minus(2)
    * times var a = 5 * 2 var a = 5.times(2)
    / div var a = 5 / 2 var a = 5.div(2)
    取余(取模) % mod var a = 5 % 2 var a = 5.mod(2)
    自加 ++ inc ++a、a++ a = a.inc()
    自减 -- dec --a、a-- a = a.dec()
    关系运算符
    名称 符号
    等于 ==
    不等于 !=
    大于 >
    大于或等于 >=
    小于 <
    小于或等于 <=

    示例

    if(a == b){
      print("a == b")
    }
    
    逻辑运算符
    名称 符号 Kotlin 用法
    逻辑与 && &&
    逻辑或 || ||
    逻辑非 ! not var a = false; if (a.not()) { }
    逻辑异或 ^ xor
    逻辑与 & and
    逻辑或 | or
    位运算符
    名称 Java Kotlin 用法
    位与 & and 1 and 2 / 1.and(2)
    位或 | or 1 or 2 / 1.or(2)
    位非、位取反 ~ inv 1.inv()
    位异或 ^ xor 1 xor 2 / 1.xor(2)
    右移 >> shr 1 shr 2 / 1.shr(2)
    左移 << shl 1 shl 2 / 1.shl(2)
    0填充的右移 >>> ushr 1 ushr 2 / 1.ushr(2)
    三目运算

    Java

    int a = -1;
    String res = a > 0 ? "a > 0" : "a <= 0";
    

    Kotlin

    val a = -1
    val res = if (a > 0) "a > 0" else "a <= 0"
    
    forEach、in 循环
    val array = arrayOf(1, 2, 3)
    for (i in array.indices) {
        print(array[i])
    }
    for (i in array) {
        print(i)
    }
    array.forEach {
        print(it)
    }
    for ((index, value) in array.withIndex()) {
        println("the element at $index is $value")
    }
    
    区间运算符
    for (i in 0..10) { // for (int i = 0; i <= 10; i++)
        print(i)
    }
    for (i in 0.rangeTo(10)) { // for (int i = 0; i < 10; i++)
        print(i)
    }
    for (i in 0 until 10) { // for (int i = 0; i < 10; i++)
        print(i)
    }
    for (i in 10 downTo 0) { // for (int i = 10; i >= 0; i--)
        print(i)
    }
    for (i in 'a'..'z') { // 等同于 'a' <= i && i <= 'z'
        print(i)
    }
    for (i in 0..10 step 2) { // for (int i = 0; i <= 10; i+=2)
        print(i)
    }
    for (i in 10 downTo 0 step 2) { // for (int i = 10; i >= 0; i-=2)
        print(i)
    }
    
    In 操作符
    val a = arrayOf(1, 2, 3)
    if (1 in a) {
        println("a 包含 1")
    }
    // 等价
    if (a.contains(1)) {
        println("a 包含 1")
    }
    
    符号重载
    class User(name: String) {
        var name: String? = name
        operator fun plus(user: User): String {
            return this.name + " + " + user.name
        }
        operator fun minus(user: User): String {
            return this.name + " - " + user.name
        }
    }
    val user1 = User("Wiki")
    val user2 = User("Sui")
    println(user1 + user2) // Wiki + Sui
    println(user1 - user2) // Wiki - Sui
    

    相关文章

      网友评论

          本文标题:Kotlin 运算符、符号重载总结

          本文链接:https://www.haomeiwen.com/subject/wcdppctx.html