OC中的BOOL用YES和NO表示,其他語言大多用true和false,為什麼會有這種差別,哪種表示更好?

時間 2021-05-11 14:23:10

1樓:旁觀者

BOOL a = 8960; // 列印是0bool b = 8960; // 列印是1Objective-C 中的BOOL 實際上是一種對帶符號的字元型別(signed char)的型別定義(typedef),它使用8位的儲存空間。通過#define指令把YES定義為1,NO定義為0。

至於使用YES/NO還是true/false,自己隨意

2樓:RefuseBT

#if __has_feature(objc_bool)#define YES __objc_yes#define NO __objc_no#else

#define YES ((BOOL)1)#define NO ((BOOL)0)#endif

意思就是小伙別亂寫,YES,NO就好了。哪天編譯器行為變了,你就慘了。雖然應該不會變化。

3樓:王飛

讓我說你什麼好,

#import

int main(int argc, const char * argvautoreleasepoolBOOL agree = YESBOOL disagree = NOBOOL agree1 = TRUEBOOL disagree1 = FALSEreturn 0;}

4樓:小芋頭君

比較同意 @季楠 的說法,就是OC的語法更接近自然語言口語一些。

例如乙個方法。

[Person eat:food with:friend in:myhouse time:today];

OC裡的方法大多定義成這個樣子,就像說了一句英文句子一樣。。。

YES和NO,則更接近自然語言一些。而且是口語。

TRUE和FALSE,日常口語裡很少用到吧,更多是邏輯方面的表意。

不用去爭什麼語境什麼的,人家就是為了強調口語化,所以才YESNO。其實跟蘋果公司沒啥關係,主要是語言設計者的意圖。

5樓:myd7349

Boost.Program_options是這樣把乙個表示真假的字串("true"、「on」、「1」、「yes」)解析為布林型別資料的:

BOOST_PROGRAM_OPTIONS_DECLvoid

validate

(any&v

,const

vector

>&xs,

bool*,

int)

所以,你看……

6樓:王韋恩卑鄙

在別人的回覆裡面有人問道 yes no 是否更符合英語習慣。

我作為英語渣來回答一下:

當你回答乙個問題

你可以回答yes / no.

也可以回答

That is true/not true.

當你說當條件1和條件2 都成立的時候

Cond 1 and Cond 2 are both yes.

你不覺得自己說話很2b嘛?

所以 true /false 可以涵蓋問題回答和邏輯運算兩種語境yes/no 並不能。

大部分情況下比較2

引用 @劉躍 於回覆中提到的

這時候還會導致二義性

這就不是小問題了。

7樓:CatCoder

有的還是TRUE呢,寫成小寫true就不對

當成兩個全域性變數好了,沒有啥差別,要是語言規範裡把「PHP是最好的語言」當成是ture來用,也沒有好壞分別,就是你的鍵盤壞的快點。

OC 和 C 中宣告和實現檔案分開的寫法有哪些利弊?

wp zh 給你一輛汽車,一般情況下你是不需要去關注發動機 變速箱 底盤細節的。標頭檔案就像方向盤 離合器 剎車 油門 變速器。你只需要關注並使用它們即可。至於其他細節,你知道他們的存在就行了,除非你想做乙個汽車設計 製造 維修師。就利弊來講,我覺得沒有弊。 潘坤 同意 陳碩 C C OC 的標頭檔...

日語中的多和少究竟應該怎麼用?

阿貓 學日語,可以和中文對比著學,效率會提高。比如各個詞性的接續,比如題主的問題。形容詞有兩個作用,乙個是修飾作用,乙個是描述作用。針對題主的問題,簡單粗暴的思路,中文也不會說 多多的人 少少的水果 我們會說 人很多 水果很少 但是其他形容詞可以,比如 美味的披薩 快樂的空氣 把這個思路轉化到日語就...

MBTI中16種人格是怎麼和生活中感情用事的同事家人相處的,或者別人打感情牌時你怎麼處理?

清蓮 intp4w5,如果是愛的在乎的人,在他感情用事的時候會關懷忍耐,但本能感受是我該怎麼幫他疏導解決他當下的問題,讓他感覺好過些,提供情緒價值,安撫,分析都可以。但是這個時間不能長,一直解決不掉會失去耐心,因為ne使用過度,又對事件進展沒有任何幫助的時候,會感覺精疲力盡,從而失去耐心。對情緒失控...