tobotras: (Default)
[personal profile] tobotras
Глядя в код некоторых коллег увидел тут глубокое экзистенциальное различие между нами. Акакувас?

[Poll #1902710]

Date: 2013-03-18 08:04 am (UTC)
From: [identity profile] tarkhil.livejournal.com
someObject.CalculateSampleValue.equalTo(new IntegerConstant("ten")) ;)

(no subject)

From: [identity profile] tarkhil.livejournal.com - Date: 2013-03-18 08:18 am (UTC) - Expand

Date: 2013-03-18 08:11 am (UTC)
From: [identity profile] tnt23.livejournal.com
Очень мешает, что это радиобаттоны, а не чекбоксы!

(no subject)

From: [identity profile] tnt23.livejournal.com - Date: 2013-03-18 09:01 am (UTC) - Expand

(no subject)

From: [identity profile] tnt23.livejournal.com - Date: 2013-03-18 09:43 am (UTC) - Expand

(no subject)

From: [identity profile] dimas.livejournal.com - Date: 2013-03-18 11:16 am (UTC) - Expand

(no subject)

From: [identity profile] tnt23.livejournal.com - Date: 2013-03-18 12:07 pm (UTC) - Expand

(no subject)

From: [identity profile] dimas.livejournal.com - Date: 2013-03-18 12:09 pm (UTC) - Expand

(no subject)

From: [identity profile] tnt23.livejournal.com - Date: 2013-03-18 12:11 pm (UTC) - Expand

(no subject)

From: [identity profile] rmrfchik.livejournal.com - Date: 2013-03-18 05:05 pm (UTC) - Expand

(no subject)

From: [identity profile] tnt23.livejournal.com - Date: 2013-03-18 06:17 pm (UTC) - Expand

(no subject)

From: [identity profile] rmrfchik.livejournal.com - Date: 2013-03-19 08:10 am (UTC) - Expand

(no subject)

From: [identity profile] xfyre.livejournal.com - Date: 2013-03-18 10:06 am (UTC) - Expand

Date: 2013-03-18 08:19 am (UTC)
From: [identity profile] deadmustdie.livejournal.com
Для целых:
if (x()==10)

Для любых объектов (в том числе для строк):
if ( "Text".equals(x()) )

Причина сугубо практическая - лень делать проверку на null.

(no subject)

From: [identity profile] rmrfchik.livejournal.com - Date: 2013-03-18 08:28 am (UTC) - Expand

(no subject)

From: [identity profile] rmrfchik.livejournal.com - Date: 2013-03-18 09:23 am (UTC) - Expand

(no subject)

From: [identity profile] deadmustdie.livejournal.com - Date: 2013-03-18 10:23 am (UTC) - Expand

Date: 2013-03-18 08:21 am (UTC)
From: [identity profile] dzz.livejournal.com
Вообще-то, в языках со слабой типизацией == не всегда означает ожидаемое сравнение, так что иногда я за if(IsEqual(SomeFunc(), 10))

(no subject)

From: [identity profile] dzz.livejournal.com - Date: 2013-03-18 08:39 am (UTC) - Expand

(no subject)

From: [personal profile] vitus_wagner - Date: 2013-03-18 01:46 pm (UTC) - Expand

(no subject)

From: [identity profile] dzz.livejournal.com - Date: 2013-03-18 01:58 pm (UTC) - Expand

Date: 2013-03-18 08:26 am (UTC)
From: [identity profile] tolok.livejournal.com
10 == someFunc() это, наверное, из sql выросло, что ли

Date: 2013-03-18 08:02 pm (UTC)
From: [identity profile] zaitcev.livejournal.com
Не, это просто идиотское суеверие такое, боятся поставить = и не заметить. Транслятор обычно выдает "операция без внешних эффецтов" в таком случае, но старообрядцам этого мало. Хотят чтобы сразу ошибка "присвоение к константе".

(no subject)

From: [identity profile] starcat13.livejournal.com - Date: 2013-03-19 10:40 am (UTC) - Expand

Date: 2013-03-18 08:27 am (UTC)
From: [identity profile] rmrfchik.livejournal.com
Magic number? IN MY PROGRAM???
Ну и в идеале, канешн, это предикат.
Т.е
if ( isQueueFull(myQueue))...
и
boolean isQueueFull(queue)
{
return queue.length >= QUEUE_LENGTH;
}

(no subject)

From: [identity profile] rmrfchik.livejournal.com - Date: 2013-03-18 09:24 am (UTC) - Expand

(no subject)

From: [identity profile] rmrfchik.livejournal.com - Date: 2013-03-18 09:30 am (UTC) - Expand

(no subject)

From: [identity profile] rmrfchik.livejournal.com - Date: 2013-03-18 12:49 pm (UTC) - Expand

Date: 2013-03-18 08:27 am (UTC)
vitus_wagner: My photo 2005 (white)
From: [personal profile] vitus_wagner
Как было написано в хакерс тесте:
Have you ever changed value of four?
... Intentionally?
... In the language, other than Fortran?

Date: 2013-03-18 08:28 am (UTC)
From: [identity profile] http://users.livejournal.com/_slw/
через темплэйты надо.
и еще через вызов удаленного soap метода

Date: 2013-03-18 08:45 am (UTC)
From: [identity profile] mklochkov.livejournal.com
В языке-то в каком?
Первый вариант применяют труъ программеры на старом хардкорном Си (который ещё K&R), дабы избежать ошибок вида "if(a=5) {do_something();}"
Правда, в именно в твоем случае (сравнение вычисляемого с константой) компилятор, скорее всего, скажет что-то вроде "lvalue required".
Ну еще вещественные числа так сравнивать нельзя, надо так "if(abs(somefunc() - 10.0) < epsilon).
В большинстве остальных случаев, IMHO, второй вариант самый наглядный.

Date: 2013-03-18 08:51 am (UTC)
From: [identity profile] dzz.livejournal.com
> Правда, в именно в твоем случае (сравнение вычисляемого с константой) компилятор, скорее всего, скажет что-то вроде "lvalue required".

K&R под руками нет, а gcc отлично справляется ;)

(no subject)

From: [personal profile] vitus_wagner - Date: 2013-03-18 09:23 am (UTC) - Expand

(no subject)

From: [identity profile] dz.livejournal.com - Date: 2013-03-18 09:25 am (UTC) - Expand

(no subject)

From: [identity profile] deadmustdie.livejournal.com - Date: 2013-03-18 10:24 am (UTC) - Expand

(no subject)

From: [personal profile] vitus_wagner - Date: 2013-03-18 10:32 am (UTC) - Expand

(no subject)

From: [identity profile] mklochkov.livejournal.com - Date: 2013-03-18 12:28 pm (UTC) - Expand

(no subject)

From: [personal profile] vitus_wagner - Date: 2013-03-18 01:49 pm (UTC) - Expand

(no subject)

From: [identity profile] mklochkov.livejournal.com - Date: 2013-03-18 02:45 pm (UTC) - Expand

Date: 2013-03-18 09:04 am (UTC)
From: [identity profile] besm6.livejournal.com
Если подумать... Если приходится сравнивать результат функции с _одной_ константой, то что-то спроектировано не так.

Так что в норме либо case по всему набору возможностей, либо pattern match, что по сути одно и то же.

Нет, разумеется, бывают отдельные случаи, когда задача такова, или (чаще) когда язык настолько беден, что приходится иметь константы, обозначающие другие варианты алгебраического типа (типа 0 в качестве N/A).

Date: 2013-03-18 09:24 am (UTC)
From: [identity profile] dz.livejournal.com
Ужас, мальчики, как всё хуёво тут у вас. Это же общее место, уровень плинтуса.

Вариант "10 == value" применяется ТОЛЬКО потому, что в случае типичной опечатки, которая превращает его в "10 = value", компилятор сообщает об ошибке.

Всё.

(no subject)

From: [identity profile] ufm.livejournal.com - Date: 2013-03-18 09:53 am (UTC) - Expand

Date: 2013-03-18 09:27 am (UTC)
From: [identity profile] joyfolk.livejournal.com
Если именно ==, то второй вариант. Если equals - обычно первый.

(no subject)

From: [identity profile] joyfolk.livejournal.com - Date: 2013-03-18 09:43 am (UTC) - Expand

Date: 2013-03-18 09:43 am (UTC)
From: [identity profile] ufm.livejournal.com
В "чистом Це" - первый вариант для единообразия.

А так, бывет сравнение и в таком виде:
try
10 = SomeFunc(),
ok
catch
_:_ -> error
end

Date: 2013-03-18 10:34 am (UTC)
From: [identity profile] crimcat.livejournal.com
const == f()
Привык уж так. Даже, бывает, в жавском коде так пишу не задумываясь.

Date: 2013-03-18 11:11 am (UTC)
From: [identity profile] dimas.livejournal.com
ЭОС :)

1. считается теоретически лучше, т.к. не присвоишь, но на присвоение уже вроде все компиляторы умеют ругаться, а от такого варианта меня выворачивает
2. вобщем то мой вариант, но предпочитают не иметь неименованных констант
3. ну это вообще ява какая-то
4. собстно так и ответил

Date: 2013-03-18 12:09 pm (UTC)
From: [identity profile] tnt23.livejournal.com
"У меня лазерный принтер!"

(no subject)

From: [identity profile] dimas.livejournal.com - Date: 2013-03-18 12:10 pm (UTC) - Expand

(no subject)

From: [identity profile] tnt23.livejournal.com - Date: 2013-03-18 12:11 pm (UTC) - Expand

(no subject)

From: [identity profile] dimas.livejournal.com - Date: 2013-03-18 12:13 pm (UTC) - Expand

(no subject)

From: [identity profile] tnt23.livejournal.com - Date: 2013-03-18 12:21 pm (UTC) - Expand

Date: 2013-03-18 02:08 pm (UTC)
From: [identity profile] dbrane.livejournal.com
if (blah === 10), конечно :-).

Date: 2013-03-18 02:59 pm (UTC)
From: [identity profile] evolver.livejournal.com
const uint GOOD_SCORE = 10;

bool hasGoodScore() {
  return (someFunc() == GOOD_SCORE);
}

if (hasGoodScore()) ...

Date: 2013-03-18 04:46 pm (UTC)
From: [identity profile] dmzlj.livejournal.com
естественнее второе, но если пишу на си, стараюсь следовать первому, если вспоминаю. конечно, после языков с нормальной типизацией это смешно

Date: 2013-03-18 05:14 pm (UTC)
From: [identity profile] aka-author.livejournal.com

const A_NUMBER_I_LIKE_BEST = 10;

/* какой-то код */

if( someFunc() == A_NUMBER_I_LIKE_BEST )

Старшие товарищи приучили меня, что писать число в коде цифрами некошерно.

Date: 2013-03-19 12:09 am (UTC)
From: [identity profile] ignik.livejournal.com
Вааще-та тут всё зависит что такое 10. Обычно никаких 10 нет. Поэтому
switch ( SomeFunc() ) {
  case 10: 
}

Edited Date: 2013-03-19 12:10 am (UTC)
From: [identity profile] livejournal.livejournal.com
Пользователь [livejournal.com profile] mklochkov сослался на вашу запись в записи «О Си и массивах — через год (http://mklochkov.livejournal.com/79149.html)» в контексте: [...] Питера ван Линдена, который и натолкнул меня на идею, как это сделать. Еще своим комментарием [...]

Profile

tobotras: (Default)
tobotras

December 2024

S M T W T F S
123 4567
891011121314
15161718192021
22232425262728
293031    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 29th, 2025 02:57 am
Powered by Dreamwidth Studios