Tôi viếtChuyển đổi ngầm định, có cần nhập hay không?
object MyString {
implicit def stringToMyString(s: String) = new MyString(s)
}
class MyString(str: String) {
def camelize = str.split("_").map(_.capitalize).mkString
override def toString = str
}
object Parse {
def main(args: Array[String]) {
val x = "active_record".camelize
// ...
}
}
trong chương trình của mình. Điều này gây ra lỗi biên dịch. Sau khi tôi chèn
import MyString.stringToMyString
Sau đó, nó hoạt động.
Từ Odersky's Lập trình trong Scala Tôi nhận được chuyển đổi ngầm định trong đối tượng đồng hành của nguồn hoặc các loại mục tiêu dự kiến không cần phải nhập.
IIRC bạn có thể đặt việc nhập vào đối tượng gói, làm cho ít nhất một chút "toàn cầu" :-) – Landei