- 1
- 2
- 3
- 4
- 5
- 6
public static string GetString(string inpString, string defValue)
{
if (inpString == null)
return defValue;
return inpString;
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+134
public static string GetString(string inpString, string defValue)
{
if (inpString == null)
return defValue;
return inpString;
}
Этот метод заботливо лижит в файле с всякими вспомогательными функциями, мало ли где может понадобиться
Почему в прошедшем времени?
>> В шарпе же вроде был тернарник без средней части?
Потому что экономия мышления и использование слов предыдущего оратора.
Так-то сахар, а в жс особенности неявной типизации языка.
С той только разницей, что b вычисляется по требованию. Такую функцию можно организовать в любом языке, который позволяет пользователю ленивые вычисления и родовые переменные (например в Хаскилле). Типы на это не влияют.
Что у вас это за чудесный язык? Какой-то оторванный от реальности диалект. Мы точно говорим о javaScript?
>С той только разницей, что b вычисляется по требованию
Это свойство оператора || еще с сишки.
>Типы на это не влияют.
Дооо. Неявное превращение в boolean вообще никак не влияет.
(false || 2)
Синтаксис естесственно не настоящий. Но на сколько я могу судить такой синтаксис для генериков самый популярный.
Никаких превращений в булеан не происходит. Функция возвращает Т а не булеан.
> Это совсем разные функции.
Если речь о js, тогда вы несете полнейшую чушь, обусловленную непониманием элементарных основ:
|| - это не функция, а оператор. Никто не вызывает его так: ||(a,b).
>Никаких превращений в булеан не происходит. Функция возвращает Т а не булеан.
Coolstory, bro.
Дык различия чисто синтаксические.
> Coolstory, bro.
http://ideone.com/CSDNxc
Можно и хуй называть пальцем, различия ведь чисто синтаксические, можно писать безумные сигнатуры ||(T a, T b). Отличия - колоссальные.
Можно ли, например, сохранить ссылку на оператор в переменной?
>http://ideone.com/CSDNxc
Не понял.
Ссылкой на ideone выражается согласие с тем что: "Никаких превращений в булеан не происходит."?
Yep. Где они произошли то? Что оператору дали, то он дословно и вернул.
Разве что внутри реализации оператора, чтобы проверить истинность (и то не факт т.к. она может тупо проверить истинность безо всяких кастов). Спеку читать лень.
Как без конверсии в буль понять что вычисления окончены на lval или надо вычислять правый?
>>"Никаких превращений в булеан не происходит."?
>Yep. Где они произошли то?
В стандарте языка. http://www.ecma-international.org/ecma-262/5.1/#sec-11.11
Я прекрасно вижу о чем говорит wvxvw. Во-первых он не говорит слова "оператор". Он твердит "функция".
Во-вторых:
>>if (a is equivalent to nil)
ToBoolean может и канет, но в общем случае (про который меня тут никто не спрашивал, но я так, ради напоминания), может бомбануть.
http://ideone.com/BYDBXr
У нечитавшего спеку bormand'а бомбануло, не спорю. Но оператор || тут совсем не при делах, без него все то же самое:
http://ideone.com/LBw6Ug
Да и всё согласно спеке: ToBoolean() для любого объекта всегда true, вызывать у этого объекта ничего не надо. И побочные эффекты ты к ToBoolean() ну никак не прикрутишь.
А про in: Return the result of calling the [[HasProperty]] internal method of rval with argument ToString(lval). Отсюда вызов.
Окей, окей...
Угу, и вызывается оператор также как и функция ||(a,b). Этот, лютый, отборный бред я уже видел выше.
>те, кто не [до]читал стандарт решили
Ну вы то неоспоримый знаток стандарта ecmascript, не буду спорить.
Правильно он лижет. Назвать isNull, добавить генериков и вуаля! сахарок ?? совсем не нужен.
coalesce c вараргами по вкусу.