先看一个简单的例子:
implicit def double2Int(d: Double) = d.toInt
val num: Int = 3.5
println(num) // 3
上面的方法,会自动找到double2Int这个函数,然后Double转成Int类型
隐式转换和类型系统是scala的强大之处,从上可以看出,在某些时候,我们可以直接的写这么一个方法,在需要的地方导入,代码会很简洁,但是建议少用,因为会加大代码的复杂度
说正事:
一同事在学scala,问我有没有方法,可以让一个字符串自动的加上",我给她说隐式转换,因为是自学,所以我只好自己给她写一个例子,如下:
implicit class StringUtils(s: String) {
def toStrings = "\"" + s + "\""
}
其实就是给字符串扩展了一个方法,调用:
val s: String = “ssss”.toStrings
println(s)