- 1
- 2
- 3
PHP supports eight primitive types - four scalar types, two compound types and finally three special types.
8 == 4+2+3?
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+48
PHP supports eight primitive types - four scalar types, two compound types and finally three special types.
8 == 4+2+3?
http://www.php.net/manual/en/language.types.intro.php
Может быть array примитивный тип, а вот object - нет. Но всё-равно тупо.
Короче какой язык, такая и документация.
Объекты однозначно не примитивы, поэтому без них получается 8. Но лично я бы не стал относить ресурсы к примитивам.
Вероятно, принцип разделения - by-val/by-ref. Объекты по ссылке передаются (PHP 5.3):
Но тогда что же получается - ресурсы по значению передаются?
>еблю
Ясно.
На самом деле сравнить в жабе 2 произвольных объекта - дико сложное занятие
Как и в жизни сравнивать ежа со слоном.
int[] a={1,2,3};
int[] b={1,2,3};
Человек обжегшийся на == и уже знающий про equals сочтет логичным написать:
a.equals(b)
Зато из-за перегрузки операторов и имплисит преобразований и конструкторов не всегда знаешь куда передаешь ;)
Что ты имеешь ввиду?
не надо
> и обращать внимание на всякие iclonable
не надо
> в плюсах с этим проблем нет - всегда знаешь что передаешь
нет
Толи дело хацкель - никаких проблем с by-value/by-reference.
P.S. В жабе то как раз всё очень просто: все объекты - по ссылкам, все примитивы (т.е. числа) - по значению.
Пока в дело не вступают всякие там IORef'ы с MVar'ами.
Правда, они в основном нужны в многопоточном коде
В жабе проще чем где-либо - всё передается по value. Даже примитивы, даже ссылки, даже Аллах. Проблема в другом - запомнить и принять, что обертки простых типов иммутабельны. Из-за автобоксинга это может смущать.
>iclonable.
Clonable - говно, ибо так сказал Doug Lea. А Жжош Блох его поддержал.
>все объекты - по ссылкам
Роман, не надо тут путать.
Всё по значению. Просто ссылка на объект передается тоже по значению.
А это кстати любимый вопрос многих на собеседованиях.
Но мы-то знаем, что это тупо указатели, и на самом деле (tm) всё передаётся по значению.
> Clonable - говно
ещё какое
Doug Lea goes even further. He told me that he doesn't use clone anymore except to copy arrays. You should use clone to copy arrays, because that's generally the fastest way to do it. But Doug's types simply don't implement Cloneable anymore. He's given up on it. And I think that's not unreasonable.
It's a shame that Cloneable is broken, but it happens. The original Java APIs were done very quickly under a tight deadline to meet a closing market window. The original Java team did an incredible job, but not all of the APIs are perfect. Cloneable is a weak spot, and I think people should be aware of its limitations.
А все почему? У них видите ли дедлайн был - а люди годами мучаются.
Правильно так:
almost all of the API are crap
Нелепая придирка к словам.
Если бы не собеседовании мне сказали, что я ответил неверное про "объекты по ссылкам" и что на самом деле "Всё по значению. Просто ссылка на объект передается тоже по значению", то я бы, конечно, не стал бы никого посылать нахуй, на всякий случай, но подумал бы, что собеседующий - тупой мудак, который воспринимает только строго те формулировки, которые написаны в книгах, и срезает семантически эквивалентные, но с другими словами. Знаете, бывают такие.
Хе-хе-хе.
>что собеседующий - тупой мудак
А ты как думал. Но дело не придирках, а в том, что так проще запомнить - всё по значению.
Ага, если это бездумно запомнить, то будет так:
Потому что я каждый раз по адовой привычке пишу просто SomyType t, потом я спохватываюсь, вставляю этот const, и да ладно, хрен с ним, но меня бесит то, что мне надо втыкать знаки в текст в не одно место, а в два, и во второе место, точно прицелившись стрелочками курсора, я должен точно попасть и двумя руками (потому что одной не получается) колченогим движением набрать этот символ &, который не приспособлен для частого и удобного набора. Лучше бы они constref ввели, и то меньше гемора было бы, хотя бы один раз скопировал это слово в буфер обмена и вставляешь везде быстренько. Я уже заебался нажимать shift+7. С этим уёбищным крестоблядским & время правки одного-единственного места занимает минимум 5 секунд!!!
Ох кресты вы мои кресты... Жизней сломанных пол-версты...
Из-за этих эволюцонных причин и желания напихать туда побольше всякого, не особо разбираясь: "А надо ли?".
используй не const Type & t, а Type const & t
пиши изначально const & - это надо делать всего то в декларации аргументов функции
используй язык, где не надо так писать, а begin, end if, function, declare улучшают читабельность ДАЖВЕ ПРИ ОТСТУПЕ В ДЖВА ПРОБЕЛА!!11
Кстати там принято три пробела :3
Чтобы неповадно было расставлять табы (потому что кто включит шестипробельный таб в редакторе)?