2014-11-18 2 views
1

Вы знаете лучший способ, чтобы написатьМожно ли укоротить? font = font? font: defaultFont;

font = font ? font : defaultFont; 

все остальное я знаю:

if(!font) { 
    font = defaultFont 
} 

Я знаю, что это гаджет вопросы, но кто знает, что может прийти.

+4

'|| (font = defaultFont); ' – BLUEPIXY

+0

@BLUEPIXY вы гениальны! –

+0

@BLUEPIXY NICE! У меня есть глупый вопрос, почему он не работает без скобок? –

ответ

2

Существует ярлык синтаксис ?: используется следующим образом:

font = font ?: defaultFont; 

который является сокращением для

font = font ? font : defaultFont; 

Это с расширением GCC, а также работает по умолчанию с лязгом, поэтому следует просто работа для вас.

+1

Это не столько объект Objective-C, сколько gcc-расширение, которое работает для C, C++ и Objective-C. Однако он не переносится. –

+0

Хотя это правда, это расширение, которое по умолчанию используется в стандартной среде, с помощью объектива-c, я хотел бы четко указать, что никаких дополнительных усилий не потребуется. Измените ответ, чтобы сделать его более правильным. –

+0

Уверенный - обратите внимание, что вопрос отмечен как C, так и Objective-C, хотя - хорошо держать ответы как можно более общеприменимыми. –

3

Синтаксически вы можете сократить его с помощью gcc extension: шрифт

font = font ?: defaultFont;