gre*_*man 1 scala implicit implicit-conversion
愚蠢的问题,但这些例子都不适合我; 经典文章" 皮条客我的图书馆 "是错误的,甚至最简单的代码也有问题.
顺便说一句.我假设您必须在对象中放置转换方法(很多片段都省略了该部分).根据PiS的书,似乎挂隐式def是可以的,但这也给了我错误.
object Minutes
{
implicit def toMinutes(x : Int) = new Minutes(x)
}
class Minutes(private val x : Int)
{
def minutes = x.toString+"m"
}
object MainApp {
def main(args : Array[String])
{
println(5.minutes)
...
Run Code Online (Sandbox Code Playgroud)
错误 - "值分钟不是Int的成员".
我错过了什么?Scala 2.9.1.
您需要做的就是将隐式转换带到您想要使用它的范围内,以便编译器可以找到它...
def main(args : Array[String]) {
import Minutes._
println(5.minutes)
}
Run Code Online (Sandbox Code Playgroud)
隐式转换必须在范围内,例如
def main(args : Array[String]) {
import Minutes._
println(5.minutes)
...
}
Run Code Online (Sandbox Code Playgroud)
还有其他方法,例如使用包对象.