# Exemples / DO-DON'T — Chapitre 6 — Types, variables, constantes et scopes > Document compagnon. Les exemples illustrent les règles du chapitre ; la formulation normative reste dans le chapitre lui-même. ## Exemples extraits du chapitre ### Exemple 1 ```text { int32 value = 1; } { int32 value = 2; } ``` ### Exemple 2 ```text foo(a(), b(), c()) ``` ### Exemple 3 ```text Type value = ...; ``` ### Exemple 4 ```text const Type value = ...; ``` ### Exemple 5 ```text interdit la réaffectation du binding interdit toute mutation obtenue uniquement à travers ce binding n'impose aucune immutabilité globale à l'objet éventuellement référencé n'affecte pas les autres alias mutables légitimes ``` ### Exemple 6 ```text User a = ...; const User b = a; a::setName("John"); // OK b::setName("John"); // ERROR b::getName(); // OK et observe la modification faite via a ``` ### Exemple 7 ```text const User user = ...; user::address::getCity(); // OK si const method user::address::setCity("Paris"); // ERROR ``` ### Exemple 8 ```text const User source = ...; User mutable = source; // ERROR ``` ### Exemple 9 ```text User source = ...; const User readonly = source; // OK ``` ### Exemple 10 ```text const int32 a = 10; int32 b = a; // OK b = 20; // OK ``` ### Exemple 11 ```text class Document { const User owner; } ``` ### Exemple 12 ```text this::owner = other; // ERROR après initialisation this::owner::setName(...); // ERROR via cet accès ``` ## DO / DON'T / WHY / compiler error / edge cases À consolider progressivement avant la baseline publique V3 et à transformer, lorsque pertinent, en tests de conformité de la toolchain.