Je suis nouveau à Scala. J'ai cherché mais il n'y a pas de "chaîne de recherche" facile pour la question apparemment facile que j'ai. pourquoi la seconde ( bar code>) ne fonctionne pas? < / p> p>
3 Réponses :
bar code> Accepte une fonction qui ne prend aucun argument et renvoie chaîne code>. Vous avez donné juste une chaîne code>. Pour le faire fonctionner: bar{() => "xyz"}
second baz code> fonctionne car ce n'est pas une fonction littérale, mais un paramètre d'appel-nommé. Fondamentalement, ce qu'il fait, c'est retarder le moment du calcul de l'argument jusqu'à ce qu'il soit nécessaire dans le programme. Vous pouvez également en lire à ce sujet dans Cette question.
Comme pour bar code> Il vous suffit de passer une fonction comme bar {() => "xyz"} code> p> p>
est la méthode baz code> puis l'approche recommandée pour la définition de la définition de structures telles que essayer {...} code>?
@Jefisher en fait à Scala Essayez Catch n'est pas recommandé du tout. Il y a une approche plus fonctionnelle avec Essayez . En ce qui concerne le nom appelé, il est utile lorsque vous avez un grand nombre de computions et que vous n'êtes pas sûr que vous en avez besoin ou non, par exemple dans l'expression if-else
Ce que je voulais dire si je veux créer des structures essentielles telles que moniteur {...} code> mutex {...} code> instrument {...} code> et ainsi de suite. L'approche "Baz" serait-elle la meilleure pour ce genre de structures "langues"?
Ce cas est spécial pour les fonctions / blocs sans paramètre. unité "()" est facultatif pour f0_1. L'ajouter à F0 entraînera une erreur. F0 n'accepte aucun paramètre. L'unité elle-même est un paramètre déclarant qu'il n'y a pas de paramètre. Fs2.f0 correspond à baz, fs2.f0 () correspond à la barre. P> p>