Здравствуйте, so5team, Вы писали:
S>По хорошему, здесь бы еще и const надо бы добавить перед всеми auto.
Да. Но я не любитель const для обычных переменных на любой чих, не смотря на то, польза от них есть
S>Будет уже не так лаконично.AD>
Вот именно )
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>>>Я, к примеру, когда читаю чужой код (а читаю я его, в силу текущей должности, часто и много), в котором куча типов руками написано — первым же делом запускаю рефакторинг, заменяющий везде где возможно типы на var. Потому что так читать проще — в коде меньше мусора. S>>Угу, а потом 1.9999883785467 землекопа в отчётах появляются из-за того что int стал float
НС>У тебя часто так бывало, что int стал float?
Ни разу. Потому что строгая типизация. Либо явное приведение.
НС>У тебя вообще часто тип float в программах встречается? Какой процент от общего количества использований типов составляет float?
Больше нуля. Этого уже достаточно.
Здравствуйте, ArtDenis, Вы писали:
S>>Зачем ты тогда сюда пришёл, в КСВ, раз тебе наплевать на наше мнение? Срач устроить? Да ну, неможетбыть... AD>В точку! Чтобы сначала устроить срач, а затем с высоты полёта надменно сказать, что ваше мнение для меня ничто, и млеть от удовольствия что у кого-то от этого дико пригорает
Бельё чаще тогда меняй
Здравствуйте, Ночной Смотрящий, Вы писали:
S>>Да, проще. Не надо угадывать тип переменной, можно просто прочитать его. НС>А зачем его угадывать или читать?
Возможно ты читаешь код просто так... Ну тебе может и ок. А я в основном дописываю/рефакторю/фикшу баги.
Здравствуйте, Ночной Смотрящий, Вы писали:
KP>>Я вообще ничего не думаю, но если ты утверждаешь что "большая часть твоих сообщений содержит обвинения собеседников в тупости",
НС>Ну ок, большая часть тех сообщений, что я прочел.
Отлично! Теперь, когда ты знаешь что "большая часть" и "большая часть тех сообщений, что я прочел" это разные вещи (не забудь записать этот пост в обвинение в тупости, т.к. сейчас именно оно), мы можем пойти дальше. В данной ветке ты прочёл как минимум 5 моих сообщений. Одно тебе показалось обвинением в тупости (это не так, но для простоты примем что ты прав), второе реально обвинение в тупости (его ты сейчас читаешь). Итого, из 5 сообщений которые ты прочёл только 2 являются обвинением в тупости. 2/5 не могут считаться большинством, ни абсолютным, ни простым, ни квалифицированным. Но мы теперь точно знаем что ты предвзятый балабол не знающий даже что слово "большинство" значит.
Здравствуйте, Sheridan, Вы писали:
S>>>Да, проще. Не надо угадывать тип переменной, можно просто прочитать его. НС>>А зачем его угадывать или читать? S>Возможно ты читаешь код просто так...
Нет.
S> Ну тебе может и ок. А я в основном дописываю/рефакторю/фикшу баги.
И? Как из этого следует обязательная необходимость всегда знать любой тип переменной?
Типы придуманы прежде всего не для того чтобы человек их читал, а для того чтобы компилятор их проверял. Большое количество аннотаций типов удобно компилятору и неудобно человеку.
Здравствуйте, Sheridan, Вы писали:
НС>>У тебя часто так бывало, что int стал float? S>Ни разу.
ЧТД.
S>Потому что строгая типизация.
Которая, внезапно, с применением auto/var никуда не исчезает.
НС>>У тебя вообще часто тип float в программах встречается? Какой процент от общего количества использований типов составляет float? S>Больше нуля. Этого уже достаточно.
Здравствуйте, Privalov, Вы писали:
P>Сдается мне, ты var (или auto C++) от dynamic не отличаешь. Но в C++ вроде бы не было dynamic. P>Если у тебя в коде есть строки: P>
P>int a = 5;
P>var b = a + 3;
P>
P>то b получит тип int и никогда не станет float. Это ж не Питон, который в печку.
Да кто ж спорит вокруг очевидного?
Ты пойди пойми какой тип когда все они определены через var/auto все и инициализируются в "момент присваивания" (да, да в момент компиляции, но глазами видно именно так). Предлагаешь ковырять код вверх по вызовам до места где будет понятно какой тип будет у переменной? Вместо того чтобы посмотреть в начало этой же строки — копать? Спасибо, можно без соли. Всё равно несъедобно.
S>Ты пойди пойми какой тип когда все они определены через var/auto все и инициализируются в "момент присваивания" (да, да в момент компиляции, но глазами видно именно так). Предлагаешь ковырять код вверх по вызовам до места где будет понятно какой тип будет у переменной? Вместо того чтобы посмотреть в начало этой же строки — копать? Спасибо, можно без соли. Всё равно несъедобно.
По каким-таким вызовам? В какой-такой верх?
var/auto могут быть только локальные переменные, причем инициализироваться они должны сразу. Допустим ты вызываешь для этого какой-то метод. Ты что, не знаешь, какой тип он возвращает? Что нужно копать? Ведь когда ты локальную переменную определяешь, то знаешь, зачем она нужна, правда? В чужом коде var меня не напрягали совсем. Вот за беспорядочние использование dynamic-ов — повбывав бы.
Здравствуйте, Sheridan, Вы писали:
S>Ты пойди пойми какой тип когда все они определены через var/auto
Все, очевидно, не могут быть определены через var, хотя бы в одном месте должен быть указан тип. А вот вся остальная цепочка, если ее можно вывести формально — забота компилятора. Зачем ты непременно за компилятор поработать хочешь — непонятно.
Здравствуйте, Ночной Смотрящий, Вы писали:
S>>Ты пойди пойми какой тип когда все они определены через var/auto НС>Все, очевидно, не могут быть определены через var, хотя бы в одном месте должен быть указан тип. А вот вся остальная цепочка, если ее можно вывести формально — забота компилятора. Зачем ты непременно за компилятор поработать хочешь — непонятно.
Для "почитать посидеть" — действительно пофиг.
А для "разобраться что тут происходит" — нет.
Вон, выше живой пример с кучей автотипов, с которого всё началось. Тебя действительно понятно что происходит? Не возникает желания заглянуть что за тип вернут методы?
Здравствуйте, kaa.python, Вы писали:
KP>Зачем тебе на каждой ошибке стек?
Бывают ситуации, когда нужно отследить цепочку событий, откуда пришло. А встать по брейкпойнту- сломает цепочку. Не из-за ошибки, а специально при отладке.
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>У тебя часто так бывало, что int стал float? У тебя вообще часто тип float в программах встречается? Какой процент от общего количества использований типов составляет float?
Кто-то точку в конце литерала написал, и не заметил. Наверное редко, но потенциально возможно, и компилятор никак не поможет, особенно когда от этой переменной по цепочке выводятся новые.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Здравствуйте, ути-пути, Вы писали:
УП>Там разве не по первой букве в переменной тип определяется? С этим подходом тип известен вообще везде.
Да, если вообще никаких объявлений нет, то по первой. implicit эту первую букву переопределяет. Я несколько раз эакое переопределение в реальном коде встречал. Надо сказать, implicit изрядно напрягает привыкшего к первой букве читателя кода.
Ну и есть явное объявление.
Я, когда переносил проект с ЕС на PC, первым делом вставлял везде implicit none. Возможность отменить неявное определение переменных появилась в Фортране 77. И в несколькох местах мне пришлось от implicit none отказаться. Сейчас всех деталей не вспомню, в коде была какая-то путаница в именах переменных (чть-то такое: IO — I0), которую не отловили по распечаткам. А когда он попал ко мне, было уже поздно. Работает — не трогай.
Здравствуйте, Sheridan, Вы писали:
S>>>А что за мода везде auto пихать? С>>Чтобы любители vim и emacs страдали. Как и прочие там в vscode. S>А редакторы то тут при чом?
При наведении на переменную курсора мыши в нормальном редакторе тебе покажут что это такое и каков его тип.
Всё сказанное выше — личное мнение, если не указано обратное.
Здравствуйте, Философ, Вы писали:
S>>>>А что за мода везде auto пихать? С>>>Чтобы любители vim и emacs страдали. Как и прочие там в vscode. S>>А редакторы то тут при чом? Ф>При наведении на переменную курсора мыши в нормальном редакторе тебе покажут что это такое и каков его тип.
А сразу, без наведений этих вот уже законами запрещено чтоли? Нет, я понимаю какой нибудь итератор списка словарей — тут и правда понятнее будет auto использовать. Но, блин, на ровном месте то зачем?
Здравствуйте, Sheridan, Вы писали:
S>Здравствуйте, Философ, Вы писали:
S>>>>>А что за мода везде auto пихать? С>>>>Чтобы любители vim и emacs страдали. Как и прочие там в vscode. S>>>А редакторы то тут при чом? Ф>>При наведении на переменную курсора мыши в нормальном редакторе тебе покажут что это такое и каков его тип. S>А сразу, без наведений этих вот уже законами запрещено чтоли? Нет, я понимаю какой нибудь итератор списка словарей — тут и правда понятнее будет auto использовать. Но, блин, на ровном месте то зачем?
А разве автовывод типов запрещает явное указание?
на самом деле это же высший абстракции. подразумевает что код может работать с различными подходящими типами.