2009-11-03 8 views
15

J'ai entendu récemment quelques conseils pour « unimport une conversion implicite de Predef » - Je suppose que cela signifie qu'il est possible de unimport des classes indésirables aussi:Unimporting à Scala

import java.awt._ 
unimport java.awt.List 

Mais ce n'est pas la syntaxe d'un "unimport" (c'est-à-dire qu'il n'y a pas un tel mot-clé unimport). Quelle est la syntaxe correcte?

Répondre

25

Utilisez la fonction d'importation d'alias mais renommez la "classe non désirée" en "_". Puisque "_" ne peut pas être accédé dans le code Scala en tant que nom de classe, il cache la classe renommée d'un accès non qualifié.

import java.awt.{List => _, _} 
+2

Hmmm - cela semble être un hack maladroit ':-(' –

+7

Non, ce n'est pas un hack, il est juste surcharge sur les significations du « _ » Si elle est utilisée seule dans une clause d'importation, cela signifie tout cas.. utilisé sur le côté droit d'un renommer import, cela signifie ne pas importer –

+3

Bizarre, mais bon, c'est Scala! –