Ruisseaux de fléchettes

Ruisseaux de fléchettes
Un flux dans le langage de programmation DART est défini comme une série d'événements asynchrones. C'est à peu près comme la structure de données itérable. Cependant, la principale différence entre un flux et un itérable est que dans le cas de ce dernier, vous devez demander manuellement les événements à venir, tandis que, dans le cas du premier, le flux lui-même vous dit que le prochain L'événement est prêt. Ce processus se poursuit jusqu'à ce qu'il ne reste plus d'événements dans le flux à lire. Les flux de fléchettes ressemblent également à des tuyaux dans lesquels vous insérez une valeur à partir d'une extrémité, et cette valeur est lue par le récepteur à l'autre extrémité. Dans ce tutoriel, nous apprendrons l'utilisation de base des flux dans le langage de programmation DART dans Ubuntu 20.04.

Comment utiliser les flux dans le langage de programmation DART dans Ubuntu 20.04?

Pour utiliser efficacement les flux du langage de programmation DART, vous devez comprendre les deux exemples suivants qui ont été mis en œuvre sur un Ubuntu 20.04 Système:

Exemple n ° 1: Création d'un flux DART pour calculer la somme de plusieurs entiers

Dans cet exemple, nous créerons un flux de fléchettes qui continuera de lire les entiers jusqu'à ce qu'ils existent, et dès qu'il en lit un nouveau, il ajoutera cela aux existants existants. Ce processus se poursuivra jusqu'à ce qu'il ne reste plus d'entiers, après quoi vous pourrez obtenir la somme de tous ces entiers. Vous pourrez le comprendre clairement en passant par le script de fléchette indiqué dans l'image ci-dessous:

Dans cet exemple, nous avons d'abord créé un «futur» de type entier, je.e., Il est capable de renvoyer une valeur entière qui est «somme» dans ce cas. Nous avons nommé ce futur «Sumstream."Ceci est capable d'accepter un flux d'entiers. Ensuite, nous avons également utilisé le mot clé «Async» tout en définissant cet avenir. Ce mot clé est utilisé chaque fois que vous souhaitez utiliser la boucle «Await for» dans un script. À l'intérieur de cet avenir, nous avons créé une variable nommée «SUM» et l'avons initialisée avec «0» afin qu'elle ne contienne aucune valeur de déchets.

Ensuite, nous avons utilisé la boucle «Await for». Cette boucle continuera à fonctionner tant qu'il y a plus d'éléments dans notre flux entier. Cette boucle itère essentiellement sur le flux entier qui a été transmis à notre avenir. À l'intérieur de cette boucle, nous calculons la somme de toutes les valeurs du flux entier. Cette boucle se brisera lorsqu'il ne reste plus d'éléments dans le flux, après quoi cet avenir renverra la «somme» à la fonction «main ()».

Ensuite, nous avons déclaré la fonction «Main ()» ayant le type de retour «futur» et avons également utilisé le mot-clé «Async» avec sa déclaration. Après cela, nous avons déclaré et initialisé un flux de quatre entiers différents dans notre fonction de pilote. Ensuite, nous avons créé une variable «somme» pour maintenir le résultat de l'avenir «Sumstream». Nous avons appelé cet avenir avec le mot-clé «Await» tout en y passant le flux entier. Enfin, nous avons utilisé une instruction «imprimer» pour imprimer le résultat de ce script, je.e., la somme du flux entier sur le terminal.

Pour l'exécution de ce script DART, nous avons utilisé la commande suivante:

$ Dart Run Streams.dard

La sortie de notre script de fléchette, je.e., La somme de notre flux entier est montrée dans l'image ci-dessous:

Exemple n ° 2: Création d'un flux DART pour calculer le produit de plusieurs entiers

Dans cet exemple, nous voulons créer un flux DART pour calculer le produit de plusieurs entiers. Cet exemple est à peu près similaire à notre premier exemple en termes d'utilisation des flux DART; Cependant, sa logique principale, je.e., Le calcul du produit différera du premier exemple. Le script DART suivant explique cette fonctionnalité:

Dans notre deuxième exemple, nous avons déclaré un avenir de fléchette avec le type de retour entier. Nous avons nommé ce futur «ProductStream», et cet avenir prendra un flux entier comme entrée. Encore une fois, nous avons utilisé le mot-clé «Async» car nous utiliserons la boucle «Await for» dans notre avenir. À l'intérieur de cet avenir, nous avons déclaré une variable nommée «produit» et lui avons attribué la valeur «1». Cette fois, nous n'avons pas initialisé cette variable avec «0» comme nous l'avons fait dans le cas de la somme. Il en est ainsi parce que la multiplication d'un nombre avec «0» réduit la sortie entière à «0». C'est exactement pourquoi nous devons conserver la valeur de cette variable «1» si nous voulons multiplier les éléments du flux entier.

Ensuite, nous avons utilisé une boucle «Await for» qui itère sur le flux entier qui a été transmis à cet avenir. À l'intérieur de cette boucle, nous calculons le produit de tous les éléments de notre flux entier. Ces éléments sont lus un par un, et la valeur de la variable «produit» est mise à jour. Enfin, lorsque tous les éléments du flux entier ont été lus, cet avenir renverra le produit de tous ces entiers à la fonction «Main ()».

Ensuite, dans notre fonction «Main ()», nous avons déclaré un flux de trois entiers. Après cela, nous avons créé une variable de «produit» pour maintenir le résultat de notre avenir «ProductStream». Maintenant, nous avons imprimé le résultat de la variable «produit» sur le terminal.

L'image illustrée ci-dessous affiche la sortie de notre avenir «ProductStream», je.e., le produit de tous les éléments de notre flux entier.

Conclusion

Cet article a été conçu pour partager avec vous un concept relativement nouveau associé au langage de programmation DART, je.e., Ruisseaux de fléchettes. Pour rendre ce concept compréhensible pour vous, nous avons mis en œuvre deux exemples simples dans Ubuntu 20.04 et les ont expliqués tous les deux en profondeur. Après avoir parcouru ces deux exemples, vous pourrez très bien saisir le concept des flux dans le langage de programmation DART.