scala - 在线 IDE 运行以下 scala 代码
问题描述
我想测试以下 scala 代码。我想使用在线编辑器。我试过了scalafiddle
,jdoodle
但都无法识别作品package
。是否有可以运行以下代码的在线 IDE?
package P {
object X { val x = 1; val y = 2 }
}
package Q {
object X { val x = true; val y = "" }
}
package P { // `X' bound by package clause
import Console._ // `println' bound by wildcard import
object A {
println("L4: "+X) // `X' refers to `P.X' here
object B {
import Q._ // `X' bound by wildcard import
println("L7: "+X) // `X' refers to `Q.X' here
import X._ // `x' and `y' bound by wildcard import
println("L8: "+x) // `x' refers to `Q.X.x' here
object C {
val x = 3 // `x' bound by local definition
println("L12: "+x) // `x' refers to constant `3' here
{ import Q.X._ // `x' and `y' bound by wildcard import
// println("L14: "+x) // reference to `x' is ambiguous here
import X.y // `y' bound by explicit import
println("L16: "+y) // `y' refers to `Q.X.y' here
{ val x = "abc" // `x' bound by local definition
import P.X._ // `x' and `y' bound by wildcard import
// println("L19: "+y) // reference to `y' is ambiguous here
println("L20: "+x) // `x' refers to string "abc" here
}}}}}}
解决方案
在 Scastie 中,尝试关闭Worksheet
模式,然后extend App
提供 main 方法,例如,尝试在 Scastie 中粘贴以下内容:
package P {
object X { val s = "hello"}
}
package P {
object Y { val s = "world"}
}
object Hello extends App {
println(P.X.s)
println(P.Y.s)
}
请注意,P
您Q
的示例应该在单独的编译单元中
假设在单独的编译单元中包 p 和 q 中名为 X 的对象有以下两个定义。
package p { object X { val x = 1; val y = 2 } } package q { object X { val x = true; val y = false } }
这意味着它们应该在单独的.scala
文件中。我不确定 Scatstie 中是否有多个文件。
推荐阅读
- ios - 无法在 iOS 模拟器中使用 Apple 登录
- android - 如何在 TopAppBar 下方显示 BodyScreen?
- xml - XSLT 从字符串输入中包含的数字中查找总和
- sql - 触发器已创建但执行事件会导致数字或值错误
- spring-boot - 如何在 Spring Boot 应用程序的消费者端启用 Rest API 请求和响应日志记录
- flutter - 嗨,我一直在尝试在 Flutter 中使用 CheckBoxListTile
- flutter - 常量变量必须用常量值初始化
- python - 在pygame中临时保存图像
- java - ThreadLocal 即使在清理后也会导致内存泄漏?
- javascript - 如果选中,则更改输入的背景颜色