E 'possibile non importare un implicito dal repl?Come può un implicito essere non importato dalla Scala repl?
dire fare qualcosa di simile,
scala> import scala.math.BigInt._
import scala.math.BigInt._
scala> :implicits
/* 2 implicit members imported from scala.math.BigInt */
/* 2 defined in scala.math.BigInt */
implicit def int2bigInt(i: Int): scala.math.BigInt
implicit def long2bigInt(l: Long): scala.math.BigInt
e poi decidere che era tutto un grosso errore. Come posso rimuovere quelli impliciti dall'ambito corrente?
La mia tecnica attuale sta interrompendo il REPL e quindi ne avvio uno nuovo, sono ansioso di evitare di ripeterlo.
Ha. Bello. Immagino che questo significhi unimport non è possibile. Invece di aggiungere un tratto, ho ottenuto lo stesso vantaggio con 'implicit def int2bool = Unit' –
@DanMidwood - Probabilmente si intende' implicit def int2bool =() ', sebbene il mio punto sia proprio che tutto funziona. Ho fatto un nuovo tratto per essere sicuro che qualunque cosa fosse implicitamente fornita non sarebbe ricercata da nessuna parte. ("= Unità" significa "restituisce l'oggetto compagno al tipo" Unità ", il valore univoco" Unità ",'() ', potrebbe essere implicitamente ricercato da qualche parte, ma è meno probabile che l'oggetto associato sia ricercato.) –
Hai ragione: stavo mirando a() e non per l'oggetto companion.Il mio vero obiettivo era quello di avere qualcosa che non corrispondesse a nulla, ma ora sono meno sicuro delle mie supposizioni sull'Unità di avere fiducia in questo Ho un sacco di cose da imparare, grazie per il tuo aiuto –