我们都知道在swift
中, 可以很容易的为现有类添加一些扩展方法,
极大的提升了代码的灵活性.
那么在scala
中如何做到这一点呢?
经过调查, 还真发现一个方法: https://alvinalexander.com/scala/scala-how-to-add-new-methods-to-existing-classes
代码示例如下:
object HttpDemo {
class BetterString(val s: String) {
def increment(): String = s.map(c => (c + 1).toChar)
}
implicit def stringToString(s: String): BetterString = new BetterString(s)
def main(args: Array[String]): Unit = {
println("abc".increment())
}
}
这里使用了scala里比较有名的隐式转换, 在遇到"abc" string 调用的它原本不支持的方法时,
会隐式的调用了一次转换: String -> BetterString.
如此, 我们以后, 就可以编写一个String的扩展集合, 提高开发体验.