на примере реализации в gml - переменная с числом будет считаться как число, до тех пор ты не задашь ей стринг
так же намного удобнее чем срать везде этими чёртовыми интами и флотами
почему это не реализовали ни в одном значимом языке?
только в питоне это более менее легко реализовано, но питон для лохов и нердов
C/C++
почему надо задавать числам инты и флоты, а не стринги?
Из-под стрингов будет торчать писюн
Кирилл Романов
лучший ответ
Есть языки со статической типизацией (Pascal, C++, C#, Java), а есть с динамической.(Python, Ruby, Javascript). У каждого из них свои плюсы и минусы.
Кирилл Романов
эта статическая типизация такая что засрёшь весь код интами потом ничё не поймёшь
ты задаёшь не числам инты и флоаты, а переменным.
кое-где (rust, python) есть маскировка имён (name masking, variable shadowing) - если переменная, содержащая число, тебе больше не нужна, можешь влепить другую, строковую, переменную с тем же именем:
https://en.wikipedia.org/wiki/Variable_shadowing
в gml, думается, тоже именно маскировка имён.
кое-где (rust, python) есть маскировка имён (name masking, variable shadowing) - если переменная, содержащая число, тебе больше не нужна, можешь влепить другую, строковую, переменную с тем же именем:
//rustc 1.39.0
fn main() {
let n :i32 = 100;
println!("{}", n);
let n : &str = "hello world";
println!("{}", n);
}
https://en.wikipedia.org/wiki/Variable_shadowing
в gml, думается, тоже именно маскировка имён.
Потому что есть языки со строгой типизацией данных, а есть те, которые сами из контекста разберутся, какой это тип.
И если в приоритете производительность конечного приложение - то строгая типизация данных выигрывает.
И если в приоритете производительность конечного приложение - то строгая типизация данных выигрывает.
Потому что ты задаешь число, а не переменную с последовательностью
Кирилл Романов
дополнительная боль в очке
Спроси у специалистов IT безопасности почему не строки....
стринги они для девочек. А програмисты любят семейники
Кирилл Романов
мудро
Например, переменная типа byte (или char) может быть равна 200. Занимает в памяти независимо от наполненности 1 байт, а в виде String это значение займёт 4 байта минимум.
unsigned long может принимать значения до 18446744073709551615 и это в памяти будет 8 байт (64 бита), а если ты сделаешь это в String, то занято будет 20 байт + накладные расходы самого String 1-2 байта (в зависимости от языка и даже версии), возможно, где-то больше.
А теперь представь, что тебе нужно хранить в базе данных и время от времени пересчитывать миллиарды таких чисел, для бухгалтерии это обычное дело. Заметна будет разница в размере и производительности?
unsigned long может принимать значения до 18446744073709551615 и это в памяти будет 8 байт (64 бита), а если ты сделаешь это в String, то занято будет 20 байт + накладные расходы самого String 1-2 байта (в зависимости от языка и даже версии), возможно, где-то больше.
А теперь представь, что тебе нужно хранить в базе данных и время от времени пересчитывать миллиарды таких чисел, для бухгалтерии это обычное дело. Заметна будет разница в размере и производительности?
Похожие вопросы
- Может ли в С++ произойти переполнение строки как например переполнение инта? То есть может ли обычный стринг не уместить
- Помогите пожалуйста с Массивами .В языке С .Заполнил 2-мерный массив N и M случайными числами дальше не понимаю.
- Сколько раз нужно взять остаток от деления числа на кол-во единиц в его двоичном представлении, чтобы получить 0
- С++ Максимум трёх чисел Даны три целых числа. Найдите наибольшее из них (программа должна вывести ровно одно целое число
- С++ сириус Номер числа Фибоначчи
- На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
- Программирование на С++.Комплексное число представляют парой действительных чисел (a,b).
- Как проверить одинаковые числа в массиве без повторений на С++
- Число Хэмминга C++
- Решить задачи на С++ по обработке цифр числа: