История изменений
Исправление den73, (текущая версия) :
Ты думать не умеешь или программировать? Естественно, что в реальной жизни у тебя будет "2" != 2
, но ты будешь ждать, что "2" == "2"
. Причиной ошибки будет как раз отсутствие статической типизации. Ошибка будет в том, что ты (или другая несчастная жертва гада) будешь ожидать на какой-то стороне сравнения один тип, а в реальности будет другой. Потому что нет статической типизации. Если бы ты умел думать или программировать, то ты бы понял, а так - ну не хватило тебя на это. Я в реальном проекте наступал на такие грабли с операцией in, когда у меня было (в унаследованном коде). "abc" in fgh
, но я не ожидал той подлянки, что fgh - почти всегда массив, но в одном случае - строка. Что в свою очередь произошло из-за какого-то другого нюанса, типа ("abc")
vs ("abc",)
. Но точно уже не помню. И многими другими способами можно на подобные грабли наступить.
Тут и решение в принципе есть, сделать так, что вообще сравнивать "2"
и 2 - это ошибка. Т.е. сделать какое-нибудь нарочито неудобное =====
, способное принимать любые аргументы и возвращать false, если их типы несовместимы, а простое ==
пусть ругается в таких случаях.
Исправление den73, :
Ты думать не умеешь или программировать? Естественно, что в реальной жизни у тебя будет "2" != 2
, но ты будешь ждать, что "2" == "2"
. Причиной ошибки будет как раз отсутствие статической типизации. Ошибка будет в том, что ты (или другая несчастная жертва гада) будешь ожидать на какой-то стороне сравнения один тип, а в реальности будет другой. Потому что нет статической типизации. Если бы ты умел думать или программировать, то ты бы понял, а так - ну не хватило тебя на это. Я в реальном проекте наступал на такие грабли с операцией in, когда у меня было (в унаследованном коде). "abc" in fgh
, но я не ожидал той подлянки, что fgh - почти всегда массив, но в одном случае - строка. Что в свою очередь произошло из-за какого-то другого нюанса, типа ("abc")
vs ("abc",)
. Но точно уже не помню. И многими другими способами можно на подобные грабли наступить.
Тут и решение в принципе есть, сделать так, что вообще сравнивать "2"
и 2 - это ошибка. Т.е. сделать какое-нибудь нарочито неудобное =====
, способное принимать любые аргумента, а простое ==
пусть ругается в таких случаях.
Исправление den73, :
Ты думать не умеешь или программировать? Естественно, что в реальной жизни у тебя будет "2" != 2
, но ты будешь ждать, что "2" == "2"
. Причиной ошибки будет как раз отсутствие статической типизации. Ошибка будет в том, что ты (или другая несчастная жертва гада) будешь ожидать на какой-то стороне сравнения один тип, а в реальности будет другой. Потому что нет статической типизации. Если бы ты умел думать или программировать, то ты бы понял, а так - ну не хватило тебя на это. Я в реальном проекте наступал на такие грабли с операцией in, когда у меня было (в унаследованном коде). "abc" in fgh
, но я не ожидал той подлянки, что fgh - всегда массив, а в одном случае - строка.
Тут и решение в принципе есть, сделать так, что вообще сравнивать "2"
и 2 - это ошибка. Т.е. сделать какое-нибудь нарочито неудобное =====
, способное принимать любые аргумента, а простое ==
пусть ругается в таких случаях.
Исправление den73, :
Ты думать не умеешь или программировать? Естественно, что в реальной жизни у тебя будет "2" != 2
, но ты будешь ждать, что "2" == "2"
. Причиной ошибки будет как раз отсутствие статической типизации. Ошибка будет в том, что ты (или другая несчастная жертва гада) будешь ожидать на какой-то стороне сравнения один тип, а в реальности будет другой. Потому что нет статической типизации. Если бы ты умел думать или программировать, то ты бы понял, а так - ну не хватило тебя на это. Я в реальном проекте наступал на такие грабли с операцией in, когда у меня было (в унаследованном коде). "abc" in def
, но я не ожидал той подлянки, что def всегда массив, а в одном случае - строка.
Тут и решение в принципе есть, сделать так, что вообще сравнивать "2"
и 2 - это ошибка. Т.е. сделать какое-нибудь нарочито неудобное =====
, способное принимать любые аргумента, а простое ==
пусть ругается в таких случаях.
Исправление den73, :
Ты думать не умеешь или программировать? Естественно, что в реальной жизни у тебя будет "2" != 2
, но ты будешь ждать, что "2" == "2"
. Причиной ошибки будет как раз отсутствие статической типизации. Ошибка будет в том, что ты (или другая несчастная жертва гада) будешь ожидать один тип, а в реальности будет другой. Потому что нет статической типизации. Если бы ты умел думать или программировать, то ты бы понял, а так - ну не хватило тебя на это.
Тут и решение в принципе есть, сделать так, что вообще сравнивать "2"
и 2 - это ошибка. Т.е. сделать какое-нибудь нарочито неудобное =====
, способное принимать любые аргумента, а простое ==
пусть ругается в таких случаях.
Исходная версия den73, :
Ты думать не умеешь или программировать? Естественно, что в реальной жизни у тебя будет "2" != 2
, но ты будешь ждать, что "2" == "2"
. Причиной ошибки будет как раз отсутствие статической типизации. Ошибка будет в том, что ты (или другая несчастная жертва гада) будешь ожидать один тип, а в реальности будет другой. Потому что нет статической типизации. Если бы ты умел думать или программировать, то ты бы понял, а так - ну не хватило тебя на это.
Тут и решение в принципе есть, сделать так, что вообще сравнивать "2"
и 2 - это ошибка. Т.е. сделать какое-нибудь нарочито неудобное =====
, спосоное принимать любые аргумента, а простое ==
пусть ругается в таких случаях.