: 셀이 오류 메시지가 실행는 jupyter 노트북에 스칼라 값 클래스를 실행하는 방법 나는 Jupyter 노트북에 다음 코드를 실행하려고하고
trait Printable extends Any {
def print(): Unit = println(this)
}
class Wrapper(val underlying: Int) extends AnyVal with Printable
object Demo {
def main(args: Array[String]) {
val w = new Wrapper(3)
w.print() // actually requires instantiating a Wrapper instance
}
}
Demo.main(Array())
가 나타납니다
Name: Compile Error
Message: <console>:15: error: value class may not be a member of another class
class Wrapper(val underlying: Int) extends AnyVal with Printable
^
StackTrace:
Jupyter가 명령 대신 scala
명령을 실행할 수 있고 scala
이 스크립팅을 사용하기 위해 모든 것을 최상위 클래스로 랩핑했기 때문에 이러한 현상이 발생한다고 생각합니다. 값 클래스는 내부 클래스가 될 수 없으므로 오류의 원인입니다. 이 문제에 대한 가능한 해결 방법이
scala: how to define a value class
거기에이 주제에 관련된 질문이 있었다?
내 Jupyter 노트북으로 Apache Toree Scala를 실행하고 있습니다.
OS : OS X 10.11.6, Scala 2.11.8, Jupyter 4.3.0, Apache Toree 0.2.0.
미리 감사드립니다.
감사합니다! 이것은 내 문제를 해결했다. scala 구문을 사용하면 사람이 "Printable로 AnyVal을 확장"하는 대신 "extends Printable"을 사용해야합니까? 또는 Jupyter 노트북 환경에서 scala가 사용되고 있기 때문에이 경우에만 필요합니까? – ecampana
잘 듣고 싶습니다. :-) 나는 이것이 문제를 해결하는 이유를 명확하게하려고 나의 대답을 편집했다. "확장"과 "함께"에 대해 혼란 스러우면 여기를보십시오. https://stackoverflow.com/questions/41031166/scala-extends-vs-with – Paul