scala - le rendement de la syntaxe
Je suis en train de lire un livre sur la scala de programmation (la Programmation dans la Scala), et j'ai une question sur le rendement de la syntaxe.
Selon le livre, la syntaxe pour le rendement peut être exprimé comme:
pour les clauses de rendement corps
mais lorsque j'essaie d'exécuter le script ci-dessous, le compilateur se plaint de trop d'arguments pour getName
def scalaFiles =
for (
file <- filesHere
if file.isFile
if file.getName.endsWith(".scala")
) yield file.getName {
//isn't this supposed to be the body part?
}
donc, ma question est qu'est-ce que le "corps" partie du rendement de la syntaxe, comment l'utiliser?
OriginalL'auteur Void Main | 2012-03-21
Vous devez vous connecter pour publier un commentaire.
Peu de temps, n'importe quelle expression (de même que le retour de l'Unité), mais vous devez placer cette expression dans les crochets ou tout simplement laisser tomber vers le bas (ne fonctionne qu'avec une seule instruction des expressions):
code ci-dessus va travailler (mais avec pas de sens):
Option suivante:
et comme une pointe, vous pouvez réécrire votre compréhension comme ça:
OriginalL'auteur om-nom-nom
Vous pouvez l'essayer ce à partir de la joli post par Zach Cox
def files(rootDir: File)(process: File => Unit) {
for (dir <- rootDir.listFiles; if dir.isDirectory) {
for (file <- dir.listFiles; if file.isFile) {
process(file)
}
}
}
OriginalL'auteur moshe beeri