LINUX.ORG.RU

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

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

Например, в языках со статической типизацией можно делать собственные типы, объединяющие нужные (union в Си) или использовать контейнеры (std::variant в С++), или есть встроенные в язык (тип variant в паскале). Таким образом получаешь нужный тип в рантайме с полным контролем над вариантами обработки

Да это не типы. Это всё ковыряние иголкой в жопе. Они ничего не решают. Тебе надо сделать типы вроде {int от 10 до 90}, чтобы он работал и всё вокруг работало. А твой ст это не умеет из коробки. И сделать ничего вменяемого ты не можешь. Потому что, например, сложение двух таких переменных даст тебе {int от 20 до 180} + любые типы входящие в этот диапазон. И я не представляю, как ты будешь выводить это на твоём ст язычке типа сисярп/жабки.

Или вот, например, элементарное uint8 sum(uint8 a, uint8 b) просто не работает в общем случае, не смотря на то, что ст язычок что-то там типа гарантирует. И про какую вы там типизацию рассказываете? Где она?

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

Например, в языках со статической типизацией можно делать собственные типы, объединяющие нужные (union в Си) или использовать контейнеры (std::variant в С++), или есть встроенные в язык (тип variant в паскале). Таким образом получаешь нужный тип в рантайме с полным контролем над вариантами обработки

Да это не типы. Это всё ковыряние иголкой в жопе. Они ничего не решают. Тебе надо сделать типы вроде {int от 10 до 90}, чтобы он работал и всё вокруг работало. А твой ст это не умеет из коробки. И сделать ничего вменяемого ты не можешь. Потому что, например, сложение двух таких переменных даст тебе {int от 20 до 180} + любые типы входящие в этот диапазон. И я не представляю, как ты будешь выводить это на твоём ст язычке типа сисярп/жабки.

Или вот, например, элементарное uint8 sum(uint8 a, uint8 b) просто не работает в общем случае, не смотря на то, что ст язычок что-то там типа гарантирует.

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

Например, в языках со статической типизацией можно делать собственные типы, объединяющие нужные (union в Си) или использовать контейнеры (std::variant в С++), или есть встроенные в язык (тип variant в паскале). Таким образом получаешь нужный тип в рантайме с полным контролем над вариантами обработки

Да это не типы. Это всё ковыряние иголкой в жопе. Они ничего не решают. Тебе надо сделать типы вроде {int от 10 до 90}, чтобы он работал и всё вокруг работало. А твой ст это не умеет из коробки. И сделать ничего вменяемого ты не можешь. Потому что, например, сложение двух таких переменных даст тебе {int от 20 до 180} + любые типы входящие в этот диапазон. И я не представляю, как ты будешь выводить это на твоём ст язычке типа сисярп/жабки.

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

Например, в языках со статической типизацией можно делать собственные типы, объединяющие нужные (union в Си) или использовать контейнеры (std::variant в С++), или есть встроенные в язык (тип variant в паскале). Таким образом получаешь нужный тип в рантайме с полным контролем над вариантами обработки

Да это не типы. Это всё ковыряние иголкой в жопе. Они ничего не решают. Тебе надо сделать типы вроде {int от 10 до 90}, чтобы он работал и всё вокруг работало. А твой ст это не умеет из коробки. И сделать ничего вменяемого ты не можешь. Потому что, например сложение двух таких переменных даст тебе {int от 20 до 180} + любые типы входящие в этот диапазон. И я не представляю, как ты будешь выводить это на твоём ст язычке типа сисярп/жабки.