参数比较顺序

sch*_*one 3 cocoa objective-c

我是一名经验丰富的程序员,因此有点尴尬地问这个问题,但无论如何都决定这样做.

我正在阅读这本书,并且还看到了网络中的各种示例,其中比较操作中的参数顺序被反转,我想知道是否有理由,或者只是因为它看起来"很酷"并且确切地说一样.

例:

我会编码:

if(bool_variable == YES)
Run Code Online (Sandbox Code Playgroud)

我在本书和各种例子中看到过

if(YES == bool_variable)
Run Code Online (Sandbox Code Playgroud)

解释吗?

万分感谢!

Car*_*rum 6

有些人喜欢yoda条件,因为他们可以帮助你找到你不小心输入的错误=而不是==.例如:

if (var = YES)
Run Code Online (Sandbox Code Playgroud)

会编译,但可能不会按你想要的方式工作.反过来写它:

if (YES = var)
Run Code Online (Sandbox Code Playgroud)

将导致编译时错误.我个人不喜欢这种结构,但对于他自己的每一种,我猜.

  • 并且不再需要使用现代编译器来做这种事情,当你犯这个错误时可以发出警告.GCC和Clang都有这种能力. (3认同)