2013-09-21 3 views
5

Je l'ai vu le symboleEst-ce que ??? un symbole valide ou opérateur scala

??? 

utilisé dans le code scala, je cependant ne sais pas s'il est censé être un code pseudo ou code scala réel, mais mon IDE Eclipse pour scala ne le signale pas et la feuille de travail eclipse l'évalue réellement. Je n'ai pas été capable de trouver quoi que ce soit via google search. Toute aide sera appréciée. Merci

Répondre

12

Oui, ceci est un identificateur valide. Depuis la Scala 2.10, il existe une méthode ??? dans Predef qui lance simplement un NotImplementedError.

def ??? : Nothing = throw new NotImplementedError 

Ceci est destiné à être utilisé pour dessiner rapidement le squelette d'un code, laissant les mises en œuvre de méthodes pour plus tard, par exemple:

class Foo[A](a: A) { 

    def flatMap[B](f: A => Foo[B]): Foo[B] = ??? 

} 

Parce qu'il a un type de Nothing (qui est un sous-type de tous les autres types), il vérifie à la place de n'importe quelle valeur, vous permettant de compiler le code incomplet sans erreurs. Il est souvent vu dans les exercices, où la solution doit être écrit à la place de ???.

+2

Fait intéressant, il était introduit dans la bibliothèque standard assez rapidement après le premier cours Coursera Scala, où il a été inclus dans la bibliothèque de l'exercice. Probablement une coïncidence, probablement;). –