Files
saselang-bible/examples/006-types-variables-constantes-et-scopes-examples.md
2026-09-12 19:31:05 +02:00

1.7 KiB

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

{
    int32 value = 1;
}
{
    int32 value = 2;
}

Exemple 2

foo(a(), b(), c())

Exemple 3

Type value = ...;

Exemple 4

const Type value = ...;

Exemple 5

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

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

const User user = ...;

user::address::getCity();         // OK si const method
user::address::setCity("Paris");  // ERROR

Exemple 8

const User source = ...;
User mutable = source; // ERROR

Exemple 9

User source = ...;
const User readonly = source; // OK

Exemple 10

const int32 a = 10;
int32 b = a; // OK
b = 20;      // OK

Exemple 11

class Document {
    const User owner;
}

Exemple 12

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.