LINUX.ORG.RU

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

Исправление 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 - это ошибка. Т.е. сделать какое-нибудь нарочито неудобное =====, спосоное принимать любые аргумента, а простое == пусть ругается в таких случаях.