Outils pour utilisateurs

Outils du site


issue156:c_c

https://doc.rust-lang.org/book/ Okay then, we head back to Rust development – as Daredevil14 and Ellin complained about where Lucas’ blog went. Rust seems to be getting more popular as time goes by. Truth be told, I do not like a language where a simple ‘hello world’ is 2Mb(!!), just because “space doesn’t matter”. Okay, my rant over. Regardless, we are going to look at it as the feedback suggests that this is what our readers want.

https://doc.rust-lang.org/book/

Bon ! Allez ! Revenons au développement en Rust, car DareDevil14 et Ellin se sont plaints de ce qu'est devenu le blog de Lucas. Rust semble être de plus en plus populaire au fil du temps.

À vrai dire, je déteste un langage dans lequel un simple « hello world » prend 2 Mo (!!), juste parce qu'« on ne se soucie pas de la taille ». Bon, assez râlé. Nous allons quand même le regarder puisque les retours laissent penser que c'est ce que souhaitent les lecteurs.

For everyone who wants to learn more, I will go through installing Rust first, so you can follow along if you like. This article explains how to install Rust in Ubuntu 18.04 (but 19.x should be the same), using the 'rustup' tool. Rustup is a terminal tool that is used to manage the installation of rust versions and optional components. Rust currently has a six-week release cycle, so ‘rustup’ is a good idea. Head on over to: https://rustup.rs/ - and run that curl command to get it installed. Choose option one (1) if prompted. Restart once done. (Easiest, as this will add what you need to your environment variables). If the download is interrupted, you can simply go back and run the command again, and you will have the option to continue with the installation.

Pour tous ceux qui veulent en apprendre plus, je vais d'abord installer Rust, et vous pouvez donc me suivre en parallèle si vous le voulez. Cet article explique comment installer Rust sur Ubuntu 18.04 (mais ça devrait être pareil avec la 19.x ), en utilisant l'outil « rustup ». Rustup est un outil de terminal qui est utilisé pour gérer l'installation des versions de rust et les composants optionnels. Rust a actuellement un cycle de publication de six semaines ; aussi, « rustup » est une bonne idée. Allons sur https://rustup.rs/ et lançons la commande curl pour qu'il s'installe. À l'invite, choisissez l'option un (1). Redémarrez quand c'est fait. (C'est le plus facile, car ce dont vous avez besoin pour vos variables d'environnement sera ajouté.)

Si le téléchargement s'interrompt, vous pouvez simplement revenir en arrière et lancer à nouveau la commande, et vous aurez la possibilité de continuer l'installation.

Once it is done, run: rustc –version ( dash dash, no spaces) cargo –version ( dash dash, no spaces) If you get a reply, all went well. At the time of writing, rust is version 1.41.0. If yours differs, that is OK. Just make sure it is a higher number, not a lower one. Look up: “men at work - cargo” in your browser (an ancient Australian band). You will see an image of a plane and a crate. I will be using binary crates, as it is easy for n00bs like you and me. Think of cargo in this way. Delivering crates, containing what you need. Maybe even listen to “Dr Heckyll and Mr Jive”, now that you have looked it up?

Une fois que c'est fait, lancez :

rustc –version (tiret tiret, sans espace)

cargo –version (tiret tiret, sans espace)

Si vous recevez une réponse, tout s'est bien passé.

Au moment où j'écris, rust est en version 1.41.0. Si vous en avez une autre, c'est bon quand même. Assurez-vous juste que le numéro est supérieur, pas plus bas.

Cherchez « men at work - cargo » dans votre navigateur (c'est un ancien groupe australien). Vous verrez l'image d'un avion et d'une caisse. J’utiliserai des caisses binaires, car c'est facile pour des « n00bs » (débutants) comme vous et moi. Pensez à cargo dans ce sens. La livraison de caisses, contenant ce dont vous avez besoin. Vous écoutez peut-être aussi « Dr Heckyll and Mr Jive », maintenant que vous l'avez recherché ?

Type: cargo new –bin rustfun (The other option I know of is: “–lib” for library files). A new binary crate named rustfun will be created (a folder and skeleton files). When you open main.rs in the src folder, you should see a simple ‘hello world’ already in there for you. Before you entered the src folder, you should have seen a cargo.toml -file. You can open this in a text editor or in Geany if you plan on using it as your IDE, or even just cat it out. We can look at all these folders and files a bit later on; for now, I just want to highlight a few things. The reason I am using Geany as my IDE is it comes with Ubuntu and we don’t need to add things to it to make it work with Rust, and it will gladly work with toml-files without complaint. It even sports its own terminal! All nicely in one place.

Saisissez :

cargo new –bin rustfun

(L'autre option que je connais est « –lib » pour les fichiers de la bibliothèque).

Une nouvelle caisse binaire nommée rustfun sera créée (un dossier et les fichiers de structure).

Si vous ouvrez main.rs dans le dossier src, vous devriez voir un simple « hello world » qui a été mis là pour vous. Avant que vous entriez dans le dossier src, vous devriez avoir vu un fichier cargo.toml. Vous pouvez l'ouvrir dans un éditeur de texte ou dans Geany, si vous prévoyez de l'utiliser comme IDE (Interface graphique de développement), ou simplement avec la commande cat. Nous regarderons tous ces dossiers et fichiers un peu plus tard ; pour le moment, je veux juste insister sur quelques points.

La raison pour laquelle j'utilise Geany comme IDE, c'est qu'il est livré avec Ubuntu et que nous n'avons besoin de rien lui ajouter pour qu'il fonctionne avec Rust ; il fonctionnera merveilleusement bien avec les fichiers toml sans se plaindre. Il propose même son propre terminal ! Tout est bien rassemblé à un seul endroit.

Here is what the installation looks like on my machine: Great, now that you have it installed, let’s look at the basics and how rust treats each one. Variables Like other programming languages, a variable is just a container for a value, regardless of type. In rust, all variables have types (more later). When we program, we simply refer to the variable by name. Variable assignments in Rust are prefixed by the word “let”. For example: let my_box = 1; Also, when you assign a value to a variable (when you declare it), you cannot change its value (it is immutable). The following WILL give you an error, because of the above reason (shown below).

Voici à quoi ça ressemble sur ma machine :

Bien ! Maintenant qu'il est installé, regardons les bases et comment rust traite chaque point.

Variables

comme dans les autres langages de programmation, une variable est juste un contenant pour une valeur, quel que soit le type. Dans rust, toutes les variables ont des types (plus, plus tard). Quand nous programmons, nous faisons simplement référence à la variable par son nom.

Dans Rust, les affectations aux variables sont préfixées par le mot « let ». Par exemple : let my_box = 1; De plus, quand vous assignez une valeur à une variable (quand vous la déclarez), vous ne pouvez pas changer sa valeur (elle est immuable). Ce qui suit vous DONNERA une erreur, pour la raison ci-dessus (voir ci-dessous).

We will cover more later, but for now, just know about this in Rust. The command ‘cargo run’, will simply tell you that it is immutable. Rust is supposed to be error resistant, so it assumes that if you don’t explicitly tell it that a variable can change, it can’t. Okay… How do we do that? With the ‘mut’ keyword, example: let mut my_num = 1; Just by simply adding that “mut”, the error is gone and our program compiles (shown bottom right). Remember I said all variables in Rust have a type? Well, Rust figures out the type in the background for you. This does not mean Rust type-casts your variable sweaty_shopowner as ‘sleazy’, rather as a string. Should Rust get it wrong, or you are a masochist, simply add a colon after the variable name and the type thereafter.

Nous en dirons davantage plus tard, mais, pour le moment, sachez juste ce qui suit sur Rust. La commande « cargo run » vous dira juste qu'elle est immuable. Rust est supposé être résistant aux erreurs ; aussi, il considère que si vous ne lui dites pas explictement qu'une variable peut changer, elle ne le pourra pas. Bon… Comment le faire ? Avec le mot-clé « mut ». Exemple : let mut my_num = 1;

Simplement en ajoutant ce « mut », l'erreur disparaît et votre programme se compile (voir en bas à droite).

Vous souvenez-vous que j'ai dit que toutes les variables dans Rust ont un type ? Eh bien, pour vous, Rust indique le type en arrière-plan. Cela ne signifie pas que Rust inscrit en dur le type de votre variable sweaty_shopowner comme « louche », mais plutôt comme une chaîne de caractères (string). Que Rust se trompe ou que vous soyez masochiste, ajoutez simplement un deux-points derrière la variable suivi du type.

Example: let my_shoesize: i32 = 13; Next issue: we can move on to another part of Rust and discuss how Rust treats that, say loops / conditionals? (Find me on Telegram if you want something else). Now a quick word on the files and folders. Once you build or run your file, you will see a new file named “cargo.lock”. This file is automatically generated from your cargo.toml file. Be sure your details are correct in the cargo.toml file, before building. There will also be a “target” folder created. Inside will be a debug folder with lots of sub-folders. Feel free to peruse these at your leisure. There should also be an executable file with the same name as your project. Run it now to see if your rust program works. Mine does (shown top right).

Exemple : let my_shoesize: i32 = 13;

Pour le prochain numéro, nous passerons à une autre partie de Rust et présenter comment Rust traite, eh bien disons, les boucles / les branchements conditionnels ? (Retrouvez-moi sur Telegram si vous voulez quelque chose d'autre.)

Maintenant un mot rapide sur les fichiers et dossiers.

Une fois que vous avez compilé ou lancé votre fichier, vous verrez un nouveau fichier appelé « cargo.lock ». Ce fichier est généré automatiquement à partir du fichier cargo.toml. Assurez-vous que vos détails sont corrects dans le fichier cargo.toml, avant de compiler. Un dossier « cible » sera créé aussi. À l'intérieur se trouvera un dossier debug avec tout un tas de sous-dossiers. N'hésitez pas à les parcourir à votre guise. Il y aura aussi un fichier exécutable avec le même nom que votre projet. Lancez-le maintenant pour voir si votre programme en rust fonctionne. C'est bon pour le mien (voir en haut à droite).

The code used in this demonstration is shown right. Let’s step through it. Every Rust program needs a main function, that is: fn main() {} Inside our curly braces we have our variable assignment, that we talked about. We incremented the variable with 1, the same as num = num +1 Then println!(“”); will print anything we put between the “” (quotation marks).

Le code utilisé dans cette démonstration est présenté à droite.

Parcourons-le.

Chaque programme en Rust nécessite une fonction main, comme celle-ci : fn main () {}

À l'intérieur des accolades, nous avons l'affectation de notre variable, dont nous avons parlé.

Nous avons augmenté la variable de 1 ; c'est pareil que num = num + 1

Ensuite println!(“”); imprimera tout ce que nous mettrons entre les guillemets (“”).

What you may not know is that {} inside of the print function; it’s a place holder to plug in a value. The value we plug in is outside of the “” and after a comma. In our case, the variable, num (more on format specifiers later). If you have any questions or comments, e-mail us: misc@fullcirclemagazine.org

Ce que vous ne savez peut-être pas, c'est le pourquoi des {} dans la fonction print ; c'est une réservation de place pour y mettre une valeur. La valeur que nous y mettons est en dehors des “” et après une virgule. Dans notre cas, c'est la variable num (plus sur les indicateurs de format plus tard).

Si vous avez des questions ou des commentaires, envoyez-nous un mail à : misc@fullcirclemagazine.org

issue156/c_c.txt · Dernière modification : 2020/04/28 12:49 de andre_domenech