stdray: (Default)
stdray ([personal profile] stdray) wrote2012-04-20 03:05 am

натуральный факап

WAT https://www.destroyallsoftware.com/talks/wat

PHP http://habrahabr.ru/post/142140/

JAVA http://ideone.com/WndoQ

Понятно, что все видели.

Меня же только еба-замыканием в цикле пытались троллировать. А видимо успешно, ведь MS пообещал в 5.0 "пофиксить". Ну в остальном можно жить, хотя часто ниасиляторы всякие возникают. А что может быть проще дотнетов? Либы есть, IDE есть, дабагер нинужен тоже тут. ОК все.

[identity profile] dr-hyder.livejournal.com 2012-04-26 01:07 pm (UTC)(link)
Пример с джавой конечно не сильно очевиден, но сами же виноваты: == для обьектов никак не эквивалентно equals() и его нельзя использовать вместо equals().

[identity profile] stdray.livejournal.com 2012-04-26 01:18 pm (UTC)(link)
Просто обманка для людей со стороны. Integer ни разу не примитивный тип, потому и структурная эквивалентность не работает. Таки, заменив, несколько букв, получаем изначально ожидаемый результат: http://ideone.com/KB3uT . По невнимальности / незнанию можно удиваться. Но добивает же, наличие кешированных значений, из-за которых любой ожидавемый сценарий скатывается в WTF.

[identity profile] dr-hyder.livejournal.com 2012-04-26 01:36 pm (UTC)(link)
Такие вещи всё же надо знать, иначе можно долго удивляться в самых разных местах :) например:

String a = "qwe";
String b = "qwe";
System.out.println(a==b); // True
String c = new String("qwe");
System.out.println(a==c); // False
String d = new String("qwe").intern();
System.out.println(a==d); // True

[identity profile] stdray.livejournal.com 2012-04-26 01:44 pm (UTC)(link)
Если Java внезапно станет моим рабочим инструментов, надо будет прочитать что-то подобное Рихтеру (http://www.ozon.ru/context/detail/id/7425674/) для джавы. Но пока не в планах, разве что до Скалы доберусь.