Syntaxe de mot-clé implicitement dans Scala dans Ubuntu 20.04
Pour construire des exemples concrets et concrets de la disponibilité des types, une méthode d'utilité est incluse dans la bibliothèque standard de Scala. De plus, implicite est le nom de la méthode. Notez que Scala version 2.8 introduit implicitement, qui est décrit dans PredEf comme:
def implicitement [t] (implicite e: t) = eExemple # 1: Programme de mot-clé implicitement Scala dans Ubuntu 20.04
Voici une brève illustration de la présentation des rétronymes:
Pour le mode Scala REP, nous avons appelé la variable «X» avec un mot-clé implicite et l'avons initialisé avec la chaîne. Nous avons spécifié une valeur implicite de la chaîne tapée. Le type est retourné lorsque la ligne de code est exécutée. Après cela, nous avons recherché la valeur implicite de la chaîne tapée en la transmettant dans la fonction implicitement, puis nous l'avons attribuée à la variable «y». Le compilateur a renvoyé la valeur de la chaîne «démo» car elle stockait cette valeur. Ensuite, nous avons trouvé la valeur implicite du type «int» et l'avons réglée à l'intérieur de la variable «Z». En compilation, il génère une erreur «n'a pas pu trouver la valeur implicite pour le paramètre int».
Exemple # 2: Programme de compréhension et de résolution d'un problème de vues implicites dans Scala dans Ubuntu 20.04
Lorsque le préfixe d'une sélection (par exemple, le.préfixe.La sélection (Args) n'a pas de membre Sélection applicable aux args) est vide, une vue implicite peut être déclenchée (même après avoir tenté de convertir les arguments en utilisant les vues implicites). Lorsque cela se produit, le compilateur recherche des membres implicites qui sont soit similaires à des méthodes implicites ou des fonctions d'un type avec une sélection déclarée, indiquée localement dans le courant, ou des lunettes qui sont enfermées, héritées ou importées.
Ici, nous avons passé la valeur «3» à l'intérieur du 1.min () as «int» n'a pas de définition de min. Le type Int Result génère la valeur «1». Ensuite, nous avons utilisé le mot-clé implicitement à l'INT, qui a la définition MIN. Il a renvoyé le type implicite «int» comme . Après cela, nous avons exécuté le res2 (1), qui localisera la valeur implicite présente dans la définition de AnyRef. En fin de compte, nous avons utilisé le .Méthode GetClass, qui a renvoyé le scala.Durée.Classe RichInt.
De plus, lorsqu'une expression s'écarte du type attendu, les vues implicites peuvent être déclenchées, comme indiqué ci-dessous:
Nous avons attribué le scala.Durée.Instruction RICHINT à la valeur «1» qui, lors de l'exécution, a fourni la valeur implicite «1»
Cette fonction est requise par le compilateur dans ce cas:
Le scala.Durée.RICHINT est ensuite affecté au type int à l'intérieur de la fonction implicitement, et il donne la sortie AS.
Exemple # 3: Programme d'accès à un paramètre implicite induit par le contexte Scala dans Ubuntu 20.04
Les paramètres implicites de Scala pourraient même être plus importants que ses vues implicites. Ils sont conformes à la classe de classe. Ceci est utilisé sporadiquement dans la bibliothèque standard; Voir Scala comment la commande est utilisée dans SEQIGHE # triée. Les manifestes du tableau et les objets canbuildfrom sont également passés en utilisant des paramètres implicites.
Context Bounds est une syntaxe de raccourci que Scala 2.8 offres d'arguments implicites. En un mot, une méthode qui demande une entrée implicite de type y [x]
Le paramètre implicite est passé, mais il n'est pas nommé. Lorsque vous appliquez la méthode FOO, cela peut-il être utile? Il est courant que le paramètre implicite soit envoyé en tant que paramètre implicite à une autre fonction appelée au lieu d'avoir à être explicitement mentionné. Pour matérialiser la valeur, vous pouvez appeler implicitement tout en gardant la définition de la méthode concise avec le contexte lié.
Exemple n ° 4: Programme de donner une entrée explicite à une partie des paramètres implicites Scala dans Ubuntu 20.04
Considérez le scénario suivant lors de l'utilisation d'une approche basée sur des classes et invoquant une méthode qui imprime bien un détail étudiant:
Nous avons défini le «Affichage» du trait Scala qui a la définition de l'affichage car il prend le type «T» et attribue la valeur «1». Ensuite, nous avons créé l'objet «affichage» où les fonctions implicites sont établies. La première fonction implicite est déclarée «intdisplay» qui a la définition «int». Cette fonction est définie avec le nouveau mot-clé pour l'affichage [int], qui renverra la représentation de la chaîne.
Ensuite, nous avons établi une autre fonction implicite comme «StringDisplay» pour la définition de la chaîne. Ensuite, nous avons la fonction «MyStringDisplay» qui a la touppercase pour la conversion en majuscules. Après cela, nous avons construit la classe de cas «Student» et définie ses attributs «Nom» avec le type de données «String» et «Age» avec le type «int».
Nous avons mis en œuvre l'objet «étudiant», à l'intérieur de laquelle la fonction implicite «StudentDisplay» est définie. La fonction a attribué deux variables, «di» pour l'affichage entier et «ds» pour l'affichage de la chaîne. Cette fonction implicite a une fonction imbriquée «Affichage» qui crée l'objet «S» pour la classe «Student». Le ds.L'affichage prend l'entrée «S.nom »et le di.L'affichage prend le «S.paramètre d'âge. Enfin, la variable «S» définit les valeurs des attributs «nom» et «âge» pour la classe «Student». Avec la fonction implicitement, nous avons affiché les valeurs de «Student».
Le Scala REP Res6 a affiché les résultats des valeurs implicites de la classe «Student» comme suit:
Que se passe-t-il si nous voulons modifier la façon dont le nom est le résultat? Bien que nous puissions utiliser directement StudentDisplay et fournir un affichage différent [String], nous préférons que le compilateur passe l'affichage [int].
Les résultats suivants sont obtenus si nous utilisons le morceau de ligne ci-dessus dans le code précédent.
Conclusion
Dans cet article, nous avons discuté de la fonction implicitement, qui fait partie de Scala depuis la version 2.8. Tout d'abord, nous avons commencé à démontrer le rôle fondamental de la fonction en tant que «compilateur pour implicite». Cette méthode implicite prévoit simplement un paramètre de type, localise la valeur implicite présente dans la portée, l'invoque et nous le rend. La technique extrêmement basique doit être utilisée implicitement pour les raisons suivantes.