5075

Айтишник родился

Айтишник родился
Вы смотрите срез комментариев. Показать все
57
Автор поста оценил этот комментарий

Вообще-то 1+1=10

раскрыть ветку (23)
4
Автор поста оценил этот комментарий
В двоичной системе - да. Может быть в JS 1+1 идёт как конкатенации строк поэтому результат 11
раскрыть ветку (19)
1
Рыцарь сарказма
Автор поста оценил этот комментарий

Чушь какая-то... Ну запусти, что ли, js, прежде чем такое писать...

раскрыть ветку (4)
3
Автор поста оценил этот комментарий

Удивительно, но лн прав, просто нужно складывать строку и число и тогда будет знак определяться, как конкатенация . "1"+1

раскрыть ветку (3)
0
Рыцарь сарказма
Автор поста оценил этот комментарий

Да я больше скажу, на Си 1 + '1'и '2' не дадут false при сравнении.

раскрыть ветку (2)
2
Автор поста оценил этот комментарий

Потому что '1' в данном случае типа char и по таблице ASCII символ '1' соответствует числовому значению 31h в шестнадцатеричной системе счисления или 49 в десятичной, приплюсовав к этому числу 1 мы получим число 32h или 50, что и будет как раз соответствовать символу '2' всё по той же таблице ASCII.

раскрыть ветку (1)
0
Рыцарь сарказма
Автор поста оценил этот комментарий

Скучновато, конечно, но забавно, да

0
Автор поста оценил этот комментарий

Да это понятно

Хотя кого я обманываю? Невозможно понять тех, кто допустил такое в языке программирования...

раскрыть ветку (13)
0
Автор поста оценил этот комментарий
Какое?
0
КапибараБезБара
Автор поста оценил этот комментарий

А что не так?

Обычнейшее привидение типов и ничего более в нетипизированном языке.

Причём, почему при строке ВСЕГДА Всё остальное приводится к строке тоже абсолютно логично и понятно - повышение отказоустойчивости. Ведь ВСЁ можно сделать строкой. Хоть 1, хоть 2, хоть §, хоть @undefined@45455ObjectType

раскрыть ветку (10)
1
Автор поста оценил этот комментарий

Это какое-то изврещенное представление об отказоустойчивости.

Отказоустойчивость - это когда всё предсказуемо, однозначно, лаконично и просто. А эти все цыганские фокусы с автоматическим приведением с миллионом разных исходов, лишь бы ошибку не сгенерить - это древнее заблуждение. Нужно правильно обрабатывать ошибки, а не прятать от них голову в песок. Так можно и говна наесться.

раскрыть ветку (9)
0
КапибараБезБара
Автор поста оценил этот комментарий

. А эти все цыганские фокусы с автоматическим приведением с миллионом разных исходов

Так в том то дело, что это повышает её, ведь исход... предсказуем.

Да и весьма лаконичен и прост.

раскрыть ветку (8)
1
Автор поста оценил этот комментарий

1 + 1 + '1' = '21'

'1' + 1 + 1 = '111'

- это предсказуемо? Может быть, но лучше бы там была ошибка типов при наличии хорошего сахара для обработки исключений, как в питоне.

раскрыть ветку (7)
1
Автор поста оценил этот комментарий

Все верно, не понимаю, но почему-то ошибки людям не нравятся. Лучше увидеть ошибку, чем не замечать того, что в прилаге в принципе расчеты неверны, пока не случится инцидент.

раскрыть ветку (4)
КапибараБезБара
Автор поста оценил этот комментарий

Юнит тесты для этого как раз придумали.

Кстати об ошибках, готов?

Вот у тебя простейшая функция: console.log которая служит для вывода информации.

Если ты пихнёшь в неё ЛЮБОЕ ЗНАЧЕНИЕ кроме строки при подходе лишь выдавания ошибок, то получишь ошибку и нужно будет везде писать toString.

И допустим нам надо вывести текст: Объект обработан:/Здесь сам объект/

А вот как это будет в JS (старой версии):

console.log('Объект обработан:'+object)

В современных можно ещё так:

console.log(`Объект обработан:{object}`)

А в Python:

console.log(f'Объект обработан:{object}') даст тебе ошибку, потому что ты не прописал у object магический метод __str__

раскрыть ветку (3)
1
Автор поста оценил этот комментарий

Не совсем понятно , как юнит тесты здесь помогают. Юнит тесты закроют лишь малую часть возможных проблем. Тестовая среда отличается от реальной и, более того, вы не покрываете в юнитах взаимодействия компонентов. Если где-то на входе вы не обработали типы, вы можете получить катастрофу, про которую вы не узнаете, пока она не произойдет.

0
Автор поста оценил этот комментарий

Вот о том я и говорю, это как благими намерениями выстилать дорогу в ад.

Вот у тебя простейшая функция: console.log которая служит для вывода информации.

Эта функция служит для вывода отладочной информации.

В Питоне идеально сделано в этом плане. тут явно видно, что будет происходить подстановка и будет приведение объекта к строке. Можно перекрыть метод приведения объекта к строке, а если такого метода нет, то будет ошибка и это правильно, потому что помимо вывода в отладочную консоль есть еще миллион других случаев, когда неожиданное поведение при опечатках или ошибках приведёт к чрезвычайно трудно отлавливаемым багам и опасным проблемам. Ошибку вы заметите сразу, а нечаянную конкатенацию с приведением к строке вместо сложения вы можете не заметить никогда и ваша программа в каких-то редких но важных случаях будет незаметно творить дичь прямо у клиента в браузере, а программисты будут блеять, мол, "а у нас всё работает".


Программисту не так сложно реализовать явно метод __str__ или правильно собрать форматную строку. Экономят на кавычках, скобках и пробелах только профнепригодные имбецилы и школохацкеры, которых ещё жизнь не научила делать качественный код. Некоторых и не научит.

А тут изговнякали язык только чтобы плюсиком можно было любой объект к строке прилепить и чтоб не дай боже ошибка не приключилась. Это типичная "страусиная" политика. Даже страусы так не поступают.

раскрыть ветку (1)
0
КапибараБезБара
Автор поста оценил этот комментарий

В Питоне идеально сделано в этом плане. тут явно видно, что будет происходить подстановка и будет приведение объекта к строке. Можно перекрыть метод приведения объекта к строке, а если такого метода нет, то будет ошибка и это правильно, потому что помимо вывода в отладочную консоль есть еще миллион других случаев, когда неожиданное поведение при опечатках или ошибках приведёт к чрезвычайно трудно отлавливаемым багам и опасным проблемам.

Да, но нет. Так как базовый объект сам по себе метод привидения к строке... СОДЕРЖИТ. То есть, фактически у нас нарушается наследование на уровне языка.

Эта функция служит для вывода отладочной информации.

Ага, только вот это произойдёт... С ЛЮБОЙ ФУНКЦИЕЙ ВЫВОДЯЩЕЙ ТЕКСТ.

Программисту не так сложно реализовать явно метод __str__ или правильно собрать форматную строку.

Конечно не сложно... на уровне 5 библиотек) Или вы забыли, что Питон это язык, который крайне сильно зависим от библиотек?

При этом опять же, в JS это как раз предсказуемое поведение. Вы точно знаете, что всё может быть приведено к строке и не важно, что это было.

В Python же, если разработчик какой нибудь библиотеки, которую юзает ваш фрэймворк не прописал привидение и оно где то вылезло, то... вы очень долго будете пытаться понять, а в чём ошибка, так как у Питона крайне весёлый вывод ошибок и там будет последовательность вызовов вплоть до какого нибудь __call__.parseExecute.ParseModule, и ни слова об ошибке типов. Потому, что... в какой то части модуля кто то не указал в отлове ошибок нормальный проброс ошибки.

А тут изговнякали язык только чтобы плюсиком можно было любой объект к строке прилепить и чтоб не дай боже ошибка не приключилась.

Так это СЮРПРИЗ делает JS больше ООП, чем Python, потому, что это.... ПОЛИМОРФИЗМ, один из принципов ООП.

0
КапибараБезБара
Автор поста оценил этот комментарий

1 + 1 + '1' = '21'

'1' + 1 + 1 = '111'

Да, всё предсказуемое.

Последний аргумент строка? Значит и результат строка.

Первый аргумент строка? Значит всё остальное тоже строка.

Понимаешь, в чём проблема? В языке с... НЕСТРОГОЙ ТИПИЗАЦИЕЙ выдавать ошибку ТИПОВ это мезальянс и крайне странное решение.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

А кто спорит? Ошибка была именно в том, что язык был изначально с нестрогой типизацией. Неправильно так поступать.

Питон вот строго типизированный язык, хотя приведения типов там доступны и в том числе неявные.

0
Рыцарь сарказма
Автор поста оценил этот комментарий

Понять их можно легко, учитывая то, с какими вычислительными средствами им приходилось работать, и какие задачи им приходилось решать.

2
Автор поста оценил этот комментарий

Или 0

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Это по модулю ноль, вам что, битов жалко?

0
Автор поста оценил этот комментарий

Скажу больш: 1+1=11, но 11-1=10 ))

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества