LINUX.ORG.RU

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

Исправление DarkEld3r, (текущая версия) :

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

Ага, странно. Странно потому что непривычно. Когда я об этой фиче узнал, то полез разбираться как (и почему) сделали в других языках. Честно говоря, уже и не помню, что нарыл, но остановился, что проблем это не вызывает. Повторюсь: не нулевые типы в других местах к дополнительным приседаниям приводят и тут ещё непонятно, что лучше.

Кстати, касательно «фундаментальности разных сравнений» и джавы: там тоже не без своих приколов. Некоторые (вроде, это даже настраивается) числовые значения кешируются и отсюда появляются такие забавные штуки:

Integer a1 = 127;
Integer b1 = 127;
System.out.println(a1 == b1); // true
Integer a2 = 128;
Integer b2 = 128;
System.out.println(a2 == b2); // false
Интуитивно? Совершенно нет. Вызывает проблемы? А хрен его знает, но не думаю, что джависты жалуются.

А в лиспе так вообще сравнений больше чем два вида. И тоже логично, если вникнуть/привыкнуть. Как по мне, в расте проблем быть не должно, ну если не пытаться переносить один в один какой-нибудь специфический код из С. Хотя, если ничего не путаю, в С по стандарту нулевых типов в принципе быть не может.

Исходная версия DarkEld3r, :

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

Ага, странно. Странно потому что непривычно. Когда я об этой фиче узнал, то полез разбираться как (и почему) сделали в других языках. Честно говоря, уже и не помню, что нарыл, но остановился, что проблем это не вызывает. Повторюсь: не нулевые типы в других местах к дополнительным приседаниям приводят и тут ещё непонятно, что лучше.

Кстати, касательно «фундаментальности разных сравнений» и джавы: там тоже не без своих приколов. Некоторые (вроде, это даже настраивается) числовые значения кешируются и отсюда появляются такие забавные штуки:

Integer a1 = 127;
Integer b1 = 127;
System.out.println(a1 == b1); // true
Integer a2 = 128;
Integer b2 = 128;
System.out.println(a2 == b2); // false
Интуитивно? Совершенно нет. Вызывает проблемы? А хрен его знает, но не думаю, что джависты жалуются.

А в лиспе так вообще сравнений больше чем два вида. И тоже логично, если вникнуть/привыкнуть. Как по мне, в расте проблем быть не должно, ну если не пытаться переносить один в один какой-нибудь специфический код из С.