LINUX.ORG.RU

История изменений

Исправление fsb4000, (текущая версия) :

Кстати, про устаревание и прочее. После знакомства с Rust и F#, я потом попробовал сделать в С immutable тип, и обнаружил для себя что C их уже поддерживает. Нужно лишь дописывать const.

typedef struct 
{
    int const x;
    int const y;
} Point;

int main()
{
    Point p = {.x = 2, .y=3};
    p.x = 5; // ошибка компиляции
    //но вот так можно
    p = Point {.x=5, .y=3};
    // я специально не поставил const у p, чтобы можно было делать как в Rust, с повторным let
    // let p = Point {x: 2, y: 3};
    // p.x =5 ; // ошибка компиляции
    // let p = Point {x: 5, y: 3}; // ok
}

Исправление fsb4000, :

Кстати, про устаревание и прочее. После знакомства с Rust и F#, я потом попробовал сделать в С immutable тип, и обнаружил для себя что C их уже поддерживает. Нужно лишь дописывать const.

typedef struct 
{
    int const x;
    int const y;
} Point;

int main()
{
    Point p = {.x = 2, .y=3};
    p.x = 5; // ошибка компиляции
    //но вот так можно
    p = Point {.x=5, .y=3};
    // я специально не поставил const, чтобы можно было делать как в Rust, с повторным let
    // let p = Point {x: 2, y: 3};
    // p.x =5 ; // ошибка компиляции
    // let p = Point {x: 5, y: 3}; // ok
}

Исправление fsb4000, :

Кстати, про устаревание и прочее. После знакомства с Rust и F#, я потом попробовал сделать в С immutable тип, и обнаружил для себя что C их уже поддерживает. Нужно лишь дописывать const.

typedef struct 
{
    int const x;
    int const y;
} Point;

int main()
{
    Point p = {.x = 2, .y=3};
    p.x = 5; // ошибка компиляции
    //но вот так можно
    p = Point {.x=5, .y=3};
    // я специально оставил это чтобы можно было делать как в Rust, с повторным let
    // let p = Point {x: 2, y: 3};
    // p.x =5 ; // ошибка компиляции
    // let p = Point {x: 5, y: 3}; // ok
}

Исходная версия fsb4000, :

Кстати, про устаревание и прочее. После знакомства с Rust и F#, я потом попробовал сделать в С immutable тип, и обнаружил для себя что C их уже поддерживает. Нужно лишь дописывать const.

typedef struct 
{
    int const x;
    int const y;
} Point;

int main()
{
    Point p = {.x = 2, .y=3};
    p.x = 5; // ошибка компиляции
    //но вот так можно
    p = {.x=5, .y=3};
    // я специально оставил это чтобы можно было делать как в Rust, с повторным let
    // let p = Point {x: 2, y: 3};
    // p.x =5 ; // ошибка компиляции
    // let p = Point {x: 5, y: 3}; // ok
}