das folgende Objekt Gegeben:Statische Importe innerhalb scala REPL
scala> object P2pClient {
| type Num = Double
| type Weights = Array[Array[Num]]
| }
defined object P2pClient
und die folgende Import:
import P2pClient._
Der Weights
Typ scheint richtig zu verstehen:
val w: Weights = new Weights(3)
w: P2pClient.Weights = Array(null, null, null)
Aber warum ist es nicht arbeitet in dem folgende Konstrukt:
case class SendWeightsReq(W: Weights) extends P2pReq[Weights] {
| override def value() = W
| }
<console>:12: error: not found: type Weights
case class SendWeightsReq(W: Weights) extends P2pReq[Weights] {
^
<console>:12: error: not found: type Weights
case class SendWeightsReq(W: Weights) extends P2pReq[Weights] {
^
Alle Ideen, was hier geschieht (/ Abhilfe)?
Aktualisierung Es scheint erhebliche Einschränkungen bei Platzhalterimporten in der REPL zu geben. Hier ist eine andere einfachere Darstellung:
scala> import reflect.runtime.universe._
import reflect.runtime.universe._
scala> trait TT { def x[T <: java.io.Serializable : TypeTag]: T }
<console>:10: error: not found: type TypeTag
trait TT { def x[T <: java.io.Serializable : TypeTag]: T }
^
So sehen wir, dass die Wildcard-Import tat nicht Arbeit. Hier ist der gleiche Code mit dem expliziten Paket:
scala> trait TT { def x[T <: java.io.Serializable : reflect.runtime.universe.TypeTag]: T }
defined trait TT
Verwenden Sie nachgestellte '// show', um zu drucken, was kompiliert wird, einschließlich Importe. Merken Sie Abstand zwischen Schrägstrich und Erscheinen. –
@ som-snytt Probleme damit. Ich lege '// show' nach dem obigen Code wie erwähnt. Wenn Sie ein ': paste' und dann' ctrl-D' eingeben, wird die REPL automatisch ': quit' - die Sitzung wird beendet. – javadba