<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://wiki.squi.fr/index.php?action=history&amp;feed=atom&amp;title=Rust_%3A_match</id>
	<title>Rust : match - Historique des versions</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.squi.fr/index.php?action=history&amp;feed=atom&amp;title=Rust_%3A_match"/>
	<link rel="alternate" type="text/html" href="https://wiki.squi.fr/index.php?title=Rust_:_match&amp;action=history"/>
	<updated>2026-06-12T02:36:23Z</updated>
	<subtitle>Historique des versions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>https://wiki.squi.fr/index.php?title=Rust_:_match&amp;diff=2360&amp;oldid=prev</id>
		<title>Justine le 3 novembre 2022 à 09:18</title>
		<link rel="alternate" type="text/html" href="https://wiki.squi.fr/index.php?title=Rust_:_match&amp;diff=2360&amp;oldid=prev"/>
		<updated>2022-11-03T09:18:44Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;fr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version du 3 novembre 2022 à 09:18&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Ligne 1 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 1 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &lt;/del&gt;&amp;lt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;nowiki&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;syntaxhighlight lang=&#039;rust&#039;&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;enum Coin {&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;enum Coin {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     Penny,&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     Penny,&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l119&quot;&gt;Ligne 119 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 119 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     useless_but_fun();&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     useless_but_fun();&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;nowiki&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;syntaxhighlight&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Justine</name></author>
	</entry>
	<entry>
		<id>https://wiki.squi.fr/index.php?title=Rust_:_match&amp;diff=2352&amp;oldid=prev</id>
		<title>Justine : Page créée avec «  &lt;nowiki&gt; enum Coin {     Penny,     Nickel,     Dime,     Quarter, }  //Le match est plus ou moins comme un case en bash //Il est composé de &quot;bras&quot; du type pattern =&gt; conséquence //Ici on la fonction renvoie une valeur numérique. //La syntaxe peut paraître confuse... fn value_in_cents(coin: Coin) -&gt; u8 {     match coin {         Coin::Penny =&gt; 1,         Coin::Nickel =&gt; 5,         Coin::Dime =&gt; 10,         Coin::Quarter =&gt; 25,     } }  //...mais c&#039;est parce... »</title>
		<link rel="alternate" type="text/html" href="https://wiki.squi.fr/index.php?title=Rust_:_match&amp;diff=2352&amp;oldid=prev"/>
		<updated>2022-11-03T09:13:58Z</updated>

		<summary type="html">&lt;p&gt;Page créée avec «  &amp;lt;nowiki&amp;gt; enum Coin {     Penny,     Nickel,     Dime,     Quarter, }  //Le match est plus ou moins comme un case en bash //Il est composé de &amp;quot;bras&amp;quot; du type pattern =&amp;gt; conséquence //Ici on la fonction renvoie une valeur numérique. //La syntaxe peut paraître confuse... fn value_in_cents(coin: Coin) -&amp;gt; u8 {     match coin {         Coin::Penny =&amp;gt; 1,         Coin::Nickel =&amp;gt; 5,         Coin::Dime =&amp;gt; 10,         Coin::Quarter =&amp;gt; 25,     } }  //...mais c&amp;#039;est parce... »&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt; &amp;lt;nowiki&amp;gt;&lt;br /&gt;
enum Coin {&lt;br /&gt;
    Penny,&lt;br /&gt;
    Nickel,&lt;br /&gt;
    Dime,&lt;br /&gt;
    Quarter,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//Le match est plus ou moins comme un case en bash&lt;br /&gt;
//Il est composé de &amp;quot;bras&amp;quot; du type pattern =&amp;gt; conséquence&lt;br /&gt;
//Ici on la fonction renvoie une valeur numérique.&lt;br /&gt;
//La syntaxe peut paraître confuse...&lt;br /&gt;
fn value_in_cents(coin: Coin) -&amp;gt; u8 {&lt;br /&gt;
    match coin {&lt;br /&gt;
        Coin::Penny =&amp;gt; 1,&lt;br /&gt;
        Coin::Nickel =&amp;gt; 5,&lt;br /&gt;
        Coin::Dime =&amp;gt; 10,&lt;br /&gt;
        Coin::Quarter =&amp;gt; 25,&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//...mais c&amp;#039;est parce que chaque conséquence est un bloc de code&lt;br /&gt;
//, on peut s&amp;#039;éviter les curly braces si le code est court&lt;br /&gt;
//ou les faire apparaître comme ici&lt;br /&gt;
fn value_in_cents_curly(coin: Coin) -&amp;gt; u8 {&lt;br /&gt;
    match coin {&lt;br /&gt;
        Coin::Penny =&amp;gt; {&lt;br /&gt;
            return 1;&lt;br /&gt;
        }&lt;br /&gt;
        Coin::Nickel =&amp;gt; {&lt;br /&gt;
            println!(&amp;quot;Something&amp;quot;);&lt;br /&gt;
            return 5;&lt;br /&gt;
        }&lt;br /&gt;
        //Un match se DOIT d&amp;#039;être exhaustif...&lt;br /&gt;
        //Le dernier bras peut couvrir tous les cas restants si besoin&lt;br /&gt;
        //Comme ici&lt;br /&gt;
        //À noter, je me dois de renvoyer qq chose&lt;br /&gt;
        //comme dit dans la signature de la fonction&lt;br /&gt;
        autre =&amp;gt; {&lt;br /&gt;
            println!(&amp;quot;...?&amp;quot;);&lt;br /&gt;
            return 20;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
fn useless_but_fun() {&lt;br /&gt;
    let mynumber = 6;&lt;br /&gt;
    match mynumber {&lt;br /&gt;
&lt;br /&gt;
        //D&amp;#039;ailleurs, je peux utiliser _ comme catch-all&lt;br /&gt;
        //Si j&amp;#039;ai besoin d&amp;#039;un ctach-all mais pas besoin de la&lt;br /&gt;
        //valeur en elle même&lt;br /&gt;
        3 =&amp;gt; println!(&amp;quot;Wahou&amp;quot;),&lt;br /&gt;
        5 =&amp;gt; println!(&amp;quot;Ho yeah&amp;quot;),&lt;br /&gt;
        _ =&amp;gt; println!(&amp;quot;I don&amp;#039;t even care about your value&amp;quot;)&lt;br /&gt;
        //Si je voulais ne rien faire sur le catch-all, je ferais&lt;br /&gt;
        //_ =&amp;gt; ()&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//Récupérer des valeurs&lt;br /&gt;
//Mettons sque je collectionne les pièces d&amp;#039;un centime en fonction de leur&lt;br /&gt;
//pays...&lt;br /&gt;
&lt;br /&gt;
#[derive(Debug)]&lt;br /&gt;
enum EuCountry {&lt;br /&gt;
    France,&lt;br /&gt;
    England, &lt;br /&gt;
    Deutschland,&lt;br /&gt;
    Sweden&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
enum EuroCoin {&lt;br /&gt;
    OneEuro,&lt;br /&gt;
    FiftyCents,&lt;br /&gt;
    //Ma pièce d&amp;#039;un centime est spéciale, je veux connaitre son pays;&lt;br /&gt;
    //donc je lui fait un tuple&lt;br /&gt;
    OneCent(EuCountry)&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
fn match_euro(coin: EuroCoin) -&amp;gt; u8 {&lt;br /&gt;
    match coin {&lt;br /&gt;
        EuroCoin::OneEuro =&amp;gt; 100,&lt;br /&gt;
        EuroCoin::FiftyCents =&amp;gt; 50,&lt;br /&gt;
        EuroCoin::OneCent(country) =&amp;gt; {&lt;br /&gt;
            //Je peux utiliser sa donnée de pays&lt;br /&gt;
            println!(&amp;quot;Nice, it is from {:?}&amp;quot;, country);&lt;br /&gt;
            1&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//Option&amp;lt;T&amp;gt;&lt;br /&gt;
//Option&amp;lt;T&amp;gt; est un enum spécial, présent sans même avoir à l&amp;#039;importer&lt;br /&gt;
//il remplace le NULL. le &amp;lt;T&amp;gt; signifie Type, AKA n&amp;#039;importe lequel&lt;br /&gt;
//Il est composé de 2 éléments, Some(T) si on a quelque chose&lt;br /&gt;
//et None si on a rien. Il a plein de méthodes, cf la doc&lt;br /&gt;
//On peut matcher dessus&lt;br /&gt;
&lt;br /&gt;
fn plus_one(x: Option&amp;lt;i32&amp;gt;) -&amp;gt; Option&amp;lt;i32&amp;gt; {&lt;br /&gt;
    match x {&lt;br /&gt;
        None =&amp;gt; None,&lt;br /&gt;
        Some(i) =&amp;gt; Some(i + 1),&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
fn main() {&lt;br /&gt;
    let mycoin = Coin::Dime;&lt;br /&gt;
    let myothercoin = Coin::Nickel;&lt;br /&gt;
    println!(&amp;quot;My coin is worth {} cents&amp;quot;, value_in_cents(mycoin));&lt;br /&gt;
    println!(&amp;quot;My coin is worth {} cents&amp;quot;, value_in_cents_curly(myothercoin));&lt;br /&gt;
&lt;br /&gt;
    let euro_coin = EuroCoin::OneCent(EuCountry::Sweden);&lt;br /&gt;
    println!(&amp;quot;My euro coin is worth {} cents&amp;quot;, match_euro(euro_coin));&lt;br /&gt;
&lt;br /&gt;
    useless_but_fun();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>Justine</name></author>
	</entry>
</feed>