Scala 中的隐式 class 未按预期显示输出
Implicit class in scala not showing output as expected
我正在尝试 运行 scala 中涉及隐式 class 的简单程序。该程序的预期输出是 "CZF",即每个字符递增 1。但是,当我在 Eclipse IDE 上执行它时,它既不返回任何结果也不返回错误。
object ObjectImplitclass extends App{
implicit class StringIncImplicitClass(s: String){
def increment = s.map(c => (c+1).toChar)
val result = "BYE".increment
print(result)
}
}
当我在终端上尝试以下代码块时:
implicit class StringIncImplicitClass(s: String){
def increment = s.map(c => (c+1).toChar)
val result = "BYE".increment
它返回了我"CZF"。
我是 scala 语法的新手,谁能帮我解释为什么我在 IDE.
上看不到结果
在 REPL 中,您在定义隐式 class 后立即评估 "BYE".increment
,因此结果会立即显示。
在 IDE 你写了:
object ObjectImplitclass extends App{
implicit class StringIncImplicitClass(s: String){
def increment = s.map(c => (c+1).toChar)
val result = "BYE".increment
print(result)
}
}
意思是你定义了隐含的class...但是你从来没有在任何东西上使用过。如果此代码正是您在 IDE 中的代码,它应该是
object ObjectImplitclass extends App {
implicit class StringIncImplicitClass(s: String) {
def increment = s.map(c => (c+1).toChar)
}
val result = "BYE".increment
print(result)
}
查看括号位置的差异。
我正在尝试 运行 scala 中涉及隐式 class 的简单程序。该程序的预期输出是 "CZF",即每个字符递增 1。但是,当我在 Eclipse IDE 上执行它时,它既不返回任何结果也不返回错误。
object ObjectImplitclass extends App{
implicit class StringIncImplicitClass(s: String){
def increment = s.map(c => (c+1).toChar)
val result = "BYE".increment
print(result)
}
}
当我在终端上尝试以下代码块时:
implicit class StringIncImplicitClass(s: String){
def increment = s.map(c => (c+1).toChar)
val result = "BYE".increment
它返回了我"CZF"。 我是 scala 语法的新手,谁能帮我解释为什么我在 IDE.
上看不到结果在 REPL 中,您在定义隐式 class 后立即评估 "BYE".increment
,因此结果会立即显示。
在 IDE 你写了:
object ObjectImplitclass extends App{
implicit class StringIncImplicitClass(s: String){
def increment = s.map(c => (c+1).toChar)
val result = "BYE".increment
print(result)
}
}
意思是你定义了隐含的class...但是你从来没有在任何东西上使用过。如果此代码正是您在 IDE 中的代码,它应该是
object ObjectImplitclass extends App {
implicit class StringIncImplicitClass(s: String) {
def increment = s.map(c => (c+1).toChar)
}
val result = "BYE".increment
print(result)
}
查看括号位置的差异。