Outils pour utilisateurs

Outils du site


issue160:c_c

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
issue160:c_c [2020/09/01 14:43] d52frissue160:c_c [2020/09/03 11:37] (Version actuelle) auntiee
Ligne 5: Ligne 5:
 OK, bandes de RUST-iques, nous revenons au développement de Rust car @Daredevil14 et Ellin se sont plaints de la direction que prenait le blog de Lucas sur Rust. Il semblerait que vous aimeriez toujours plus de rust et moins de « non-sens sur la sécurité ». En premier lieu, ne négligez pas la lecture du livre indiqué le mois dernier. Si vous êtes complètement débutant dans Rust ou même en programmation, vous trouverez ce qu'il vous faut ici, dans le FCM. Ces articles n'ont pas l'intention de remplacer le livre cité plus haut ; voyez-les plutôt comme une aide en parallèle. OK, bandes de RUST-iques, nous revenons au développement de Rust car @Daredevil14 et Ellin se sont plaints de la direction que prenait le blog de Lucas sur Rust. Il semblerait que vous aimeriez toujours plus de rust et moins de « non-sens sur la sécurité ». En premier lieu, ne négligez pas la lecture du livre indiqué le mois dernier. Si vous êtes complètement débutant dans Rust ou même en programmation, vous trouverez ce qu'il vous faut ici, dans le FCM. Ces articles n'ont pas l'intention de remplacer le livre cité plus haut ; voyez-les plutôt comme une aide en parallèle.
  
-Pour le moment, nous nous ne faisons qu'avoir une vision générale des choses. Nous pouvons rentrer dans le détail de chacun des sujets dont nous avons parlé. En général, quand nous voulons définir des types personnalisés, ce sont des « struct » et des « enum ». Nous commençons par les structs ?+Pour le moment, je ne vous donne qu'une vision générale des choses. Nous pouvons rentrer dans le détail de chacun des sujets dont nous avons parlé. En général, quand nous voulons définir des types personnalisés, ce sont des « struct » et des « enum ». Nous commençons par les structs.
  
 **This will be chapter five in the book above. This is the direct link: **This will be chapter five in the book above. This is the direct link:
Ligne 14: Ligne 14:
 C'est dans le chapitre cinq du livre ci-dessus. Voici le lien direct : https://doc.rust-lang.org/book/ch05-01-defining-structs.html C'est dans le chapitre cinq du livre ci-dessus. Voici le lien direct : https://doc.rust-lang.org/book/ch05-01-defining-structs.html
  
-Les structs regroupent des choses, comme les statistiques sur vos personnages dans un jeu RPG (jeu de rôles). Aussi, disons que nous créons un personnage dans notre jeu de rôle. Les personnages ont un nom, ils possèdent un attribut « force », etc. Ces « caractéristiques » sont les mêmes pour tous les joueurs, que ce soit un demi-elfe ou un un ogre. Si vous n'êtes pas familier avec les jeux de rôles ou les jeux de Donjons et Dragons (DND ou D&D), regardez rapidement la création d'un tel personnage sur le net. Je n'aime pas cet exemple : https://doc.rust-lang.org/rust-by-example/custom_types/structs.html. Mais si vous le comprenez mieux que mon exemple. n'hésitez pas à aller sur cette page.+Les structs regroupent des choses, comme les statistiques sur vos personnages dans un jeu RPG (jeu de rôles). Aussi, disons que nous créons un personnage dans notre jeu de rôle. Les personnages ont un nom, ils possèdent des attributs « force », « dextérité », etc. Ces « caractéristiques » sont les mêmes pour tous les joueurs, que ce soit un demi-elfe ou un ogre. Si vous n'êtes pas familier avec les jeux de rôles ou les jeux de Donjons et Dragons (DND ou D&D), regardez rapidement la création d'un tel personnage sur le Net. Je n'aime pas cet exemple : https://doc.rust-lang.org/rust-by-example/custom_types/structs.html. Mais si vous le comprenez mieux que le mien, n'hésitez pas à aller sur cette page.
  
 **Like other things in Rust, we let Rust know what we are defining, so we use the struct keyword. **Like other things in Rust, we let Rust know what we are defining, so we use the struct keyword.
Ligne 43: Ligne 43:
  Charisma: u8,  Charisma: u8,
 } }
 +
 +Ce qui s'affichent sont des CSV (Comma Separated Values, des données séparées par des virgules), l'une au-dessous de l'autre. Pensez-y comme des champs dans un tableur Excel ou Calc.
  
 **So we define our struct character creation sheet, but how do we actually use it? Well, to use it, you need to remember to use all the fields that you created. So for demonstration purposes, I am not going to type all those fields we listed above, but a subsection of them. We will encounter an error, but the program will run. (I do not use all the fields, that’s all). **So we define our struct character creation sheet, but how do we actually use it? Well, to use it, you need to remember to use all the fields that you created. So for demonstration purposes, I am not going to type all those fields we listed above, but a subsection of them. We will encounter an error, but the program will run. (I do not use all the fields, that’s all).
Ligne 51: Ligne 53:
 The important take-away here is the how. How to use a struct. We can step through the code:** The important take-away here is the how. How to use a struct. We can step through the code:**
  
-Ainsi, nous définissons la feuille de création du personnage, mais comment l'utiliser réellement ? Eh bien, pour l'utiliser, vous devez vous souvenir d'utiliser tous les champs que vous avez créé. Pour les besoins d'une démonstration, je ne vais pas saisir tous les champs que nous avons listés plus haut, mais une sous-section d'entre eux. Nous rencontrerons une erreur, mais le programme tournera. (je n'utilise pas tous les champs, c'est comme ça).+Ainsi, nous définissons la feuille de création du personnage, mais comment l'utiliser réellement ? Eh bien, pour l'utiliser, vous devez vous souvenir d'utiliser tous les champs que vous avez créés. Pour les besoins d'une démonstration, je ne vais pas saisir tous les champs que nous avons listés plus haut, mais une sous-section d'entre eux. Nous rencontrerons une erreur, mais le programme tournera. (Je n'utilise pas tous les champs, c'est tout.)
  
 Vous avez peut-être noté un point-virgule bizarrement placé après la définition du joueur. Moi aussi ; pourquoi est-il là ? Je dis que c'est parce que c'est une déclaration d'affectation, même si ça n'y ressemble pas d'emblée. Cependant, voici plus d'avis : https://users.rust-lang.org/t/why-is-a-semicolon-required-at-the-end-of-a-tuple-struct-definition/25589 Vous avez peut-être noté un point-virgule bizarrement placé après la définition du joueur. Moi aussi ; pourquoi est-il là ? Je dis que c'est parce que c'est une déclaration d'affectation, même si ça n'y ressemble pas d'emblée. Cependant, voici plus d'avis : https://users.rust-lang.org/t/why-is-a-semicolon-required-at-the-end-of-a-tuple-struct-definition/25589
Ligne 65: Ligne 67:
 Nous définissons notre variable « player » (joueur) comme affectée au nom de struct « PlayerCharacter ». Nous définissons notre variable « player » (joueur) comme affectée au nom de struct « PlayerCharacter ».
  
-Pour mémoire, les variables ne sont pas variables dans Rust, sauf si vous utilisez le mot-clé mut. Aussi, si vous prévoyez de modifier ces variablesdisons la force ou l'agilité pendant que votre personnage monte les niveaux, vous avez besoin de mut derrière let.+Pour mémoire, les variables ne sont pas des variables dans Rust, à moins d'utiliser le mot-clé mut. Aussi, si vous prévoyez de modifier ces variables disons la force ou l'agilité pendant que votre personnage monte les niveaux -, vous avez besoin de mut derrière let.
  
-Ensuite, nous remplissons tous les champs définis, que nous prévoyions de les utiliser immédiatement ou non. (vous noterez que je ne les utilise pas et que j'ai eu des erreurs de compilation. Si vous poursuivez, vous pouvez les ignorer pour le moment et vous verrez la sortie désirée). Nous terminons notre déclaration d'affectation avec un point-virgule. Pensez à lui comme à une instance de struct.+Ensuite, nous remplissons tous les champs définis, que nous prévoyions de les utiliser immédiatement ou non. (Vous noterez que je ne les utilise pas et que j'ai eu des erreurs de compilation. Si vous poursuivez, vous pouvez les ignorer pour le moment et vous verrez la sortie désirée.Nous terminons notre déclaration d'affectation avec un point-virgule. Pensez à lui comme à une instance de struct.
  
 **So what is happening in the println? When you reference the field you want, you need “variablename.fieldname” . The reason for this is that you may have multiple PlayerCharacters, and referring to each may be player1.name, player2.name (instead of my lame character.name). See where this is going? **So what is happening in the println? When you reference the field you want, you need “variablename.fieldname” . The reason for this is that you may have multiple PlayerCharacters, and referring to each may be player1.name, player2.name (instead of my lame character.name). See where this is going?
Ligne 75: Ligne 77:
 Okay I just watched this: https://www.youtube.com/watch?v=wh4aWZRtTwU - this morning, so don’t judge my example. It is actually HARD coming up with simple examples! (top right)** Okay I just watched this: https://www.youtube.com/watch?v=wh4aWZRtTwU - this morning, so don’t judge my example. It is actually HARD coming up with simple examples! (top right)**
  
-Ainsi, qu'est-ce qui se passe dans le println ? Quand vous faites référence au champ que vous voulez, vous avez besoin de « nomdevariable.nomduchamp ». La raison pour cela vient de ce que vous pouvez peut-être avoir plusieurs « PlayerCharacters » et vous ferez référence à chacun d'eux comme player1.name ou player2.name (à la place de mon pauvre character.name). Voyez-vous où ça nous mène ?+Alors, qu'est-ce qui se passe dans le println ? Quand vous faites référence au champ que vous voulez, vous avez besoin de « nomdevariable.nomduchamp ». La raison pour cela vient de ce que vous pouvez peut-être avoir plusieurs « PlayerCharacters » et vous ferez référence à chacun d'eux comme player1.name ou player2.name (à la place de mon pauvre character.name). Voyez-vous où ça nous mène ?
  
 Je dois insister sur le fait que les structs avec des champs nommés ne sont pas le seul type. Le premier est un struct de tuple. Dans un struct de tuple, les champs sont invariables ; ils n'ont donc pas besoin d'être nommés. Je dois insister sur le fait que les structs avec des champs nommés ne sont pas le seul type. Le premier est un struct de tuple. Dans un struct de tuple, les champs sont invariables ; ils n'ont donc pas besoin d'être nommés.
  
-Bon, d'accord, j'ai juste regardé ça ce matin : https://www.youtube.com/watch?v=wh4aWZRtTwU. Aussi, ne condamnez pas mon exemple. C'est vraiment DUR de trouver des exemples simples ! (en haut à droite)+Bon, d'accord, je viens de regarder ceci ce matin : https://www.youtube.com/watch?v=wh4aWZRtTwU. Aussi, ne condamnez pas mon exemple. C'est vraiment DUR de trouver des exemples simples ! (En haut à droite.)
  
 **We simply refer to the position of the tuple’s contents. **We simply refer to the position of the tuple’s contents.
Ligne 95: Ligne 97:
 Un struct de tuple, ce n'est pas pareil qu'un tuple ! Un struct de tuple, ce n'est pas pareil qu'un tuple !
  
-Je n'arrive pas pas à trouver un cas d'utilisation dans la vraie vie, mais programmeur n'est pas mon travail quotidien ; aussi, si quelqu'un veut participer, qu'il se sente libre !+Je n'arrive pas pas à trouver un cas d'utilisation dans la vraie vie, mais la programmation n'est pas mon travail quotidien ; aussi, si quelqu'un veut participer, qu'il se sente libre !!!
  
-Un struct unit est un autre type. C'est une struct sans aucun champ. Je ne sais pas dire quel est son usage, mais nous pouvons le présenter dans le prochain numéro quand nous regarderons les enums.+Un struct unit est un autre type. C'est un struct sans aucun champ. Je ne sais pas dire quel est son usage, mais nous pen parlerons dans le prochain numéro quand nous regarderons les enums.
  
-Si j'ai fait une erreur, résolvez-la en m'envoyant un mail à : misc@fullcirclemagazine.org+Si j'ai fait une erreur, corrigez-la en m'envoyant un mail à : misc@fullcirclemagazine.org
  
issue160/c_c.1598964235.txt.gz · Dernière modification : 2020/09/01 14:43 de d52fr