objective c - Why use double parentheses in init methods, or is 1 == (1)? -


what parentheses when evaluating meaning? have faced in code, when checked , use

if ( (some condition returns 1) ) { code } 

so question is, evaluate true? think false since (1) not return anything?

edit: clarification, question why double parenthesis in if? know 1 true.

the additional parentheses used when assignment used truth value. allow compiler distinguish between

if ((var = expr)) 

as legitimate combination of assignment , truth value test, and

if (var = expr) 

as misspelling of if (var == expr).

the convention, carried on c , c++, compilers warn on if (var = expr) possible misspelling of if (var == expr). don't warn on if ((var = expr)), because set of parentheses signals compiler assignment intended. rob mayoff explains, clang has special case not warn assignments self, many coders habit remained.

as others said, generated code same , without parens.


Comments

Popular posts from this blog

get url and add instance to a model with prefilled foreign key :django admin -

css - Make div keyboard-scrollable in jQuery Mobile? -

ruby on rails - Seeing duplicate requests handled with Unicorn -