美文网首页
Kotlin-重载操作符和字符串模板(2019-01-16)

Kotlin-重载操作符和字符串模板(2019-01-16)

作者: Guow110 | 来源:发表于2019-01-16 14:15 被阅读1次

1. 重载操作符

用指定的函数来重新定义操作符的功能
举几个例子

  • 一元操作符(+)
    data class Number(var value: Int)
      /**
       * 重载一元操作符+,使其对Number中实际数据取绝对值
       */
    operator fun Number.unaryPlus(): Number {
      this.value = Math.abs(value)
      return this
    }
    
  • "In"运算符
    class IntCollection { 
      val intList = ArrayList<Int>()}
    // 重载"in"操作符
    operator fun IntCollection.contains(value: Int): Boolean {
        return this.intList.contains(value)
    }
    
    可参考文章操作符重载及中缀调用

2. 字符串模板

字符串模板是在字符串中添加若干个占位符,内容会在后期指定,也就是说,用模板可以设置字符串动态的部分。
模板使用美元符号”$”表示

  • 字符串可以通过占位符的形式进行插值
  • 如果需要在字符串中包含”$”,可以对其进行转义
  • 当占位符是表达式时,需要用花括号把表达式括起来
  • 可以在双引号中嵌套双引号,只要被嵌套的双引号在花括号的表达式中
val name="Mike"
println("hello,$name")
//---------------------------------
val name="Mike"
println("$name have 5\$s")
//-----------------------------------
val name="Mike"
println("hello,${if(name.isBlank()) name.toUpperCase() else name.toLowerCase()}")

相关文章

网友评论

      本文标题:Kotlin-重载操作符和字符串模板(2019-01-16)

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