国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

iOS中奇妙的三目運算符示例詳解

2019-10-21 18:40:45
字體:
來源:轉載
供稿:網友

前言

三目運算符:也叫三元運算符。這個運算符的符號是: ? :,下面這篇文章主要給大家介紹了關于iOS三目運算符的相關內容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹吧

基礎

一般情況下,我們使用三目運算符(?:)的語法格式是:

(expression)?if-true-statement :if-false-statement; 

如果表達式expression結果為真,則執行if-true-statement,否則執行if-false-statement。

我們經常會使用三目運算符進行簡單的判斷賦值,例如:

y = x ? x : z;

即如果x為真,則返回x,如果x為假,則返回z,這是最簡單最基本的用法。

高級

但是偶爾我們也會看到這種用法:

y = x ? : z;

? 與 :之間沒有任何操作數,這是什么用法呢?

通過幾次實驗發現,當x為真時,y的值與x值一致。那我猜測? 與 : 之間省略了x。

也就是說,y = x ? : z; 與y = x ? x : z;等價,這樣就和事實相一致了。

復雜

但是,這這只是最簡單的情況,那么稍微復雜一點的情況呢?

如:a > b ? : b中間省略了什么呢?會是a嗎?

經過驗證后發現,并不是a。

其實它是省略了a > b 。

也就是說a > b ? : b 等價于 a > b ? a > b : b;

那么這樣似乎可以得出結論,? 與 : 中間省略的東西,是與? 之前的表達式一致的。

那么確實是這樣的嗎?

特例

我們知道,在OC中,有一類很奇怪的運算符,自增(++)/自減(--)運算符。那么它在三目運算符中的表現如何呢?
如:

int x = 0; int y = ++x ? ++x : 3;

則最終,y的值為2。

然而,

int x = 0; int y = ++x ? : 3;

最終,y的值居然是1。

怎么兩次的結果不一致呢?按照上面的結論,y的值應該都是2才對啊。

那為什么第一種結果y的值為2,而第二種結果y的值為1呢?

結論

據我猜想,? 與: 之間省略的應該是?之前表達式的值,而不是省略的表達式。

這樣就可以解釋上面所有的情況了。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。


注:相關教程知識閱讀請移步到IOS開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 云阳县| 义乌市| 南通市| 信阳市| 织金县| 西畴县| 二手房| 泗洪县| 汶川县| 广德县| 东明县| 兴义市| 长寿区| 盈江县| 泸水县| 洪泽县| 鹰潭市| 昌吉市| 重庆市| 清丰县| 会昌县| 英德市| 曲沃县| 绿春县| 屯门区| 定边县| 枣强县| 樟树市| 泰来县| 长岛县| 竹山县| 云梦县| 鄂州市| 新巴尔虎左旗| 上虞市| 娱乐| 莒南县| 稷山县| 灌阳县| 虞城县| 华安县|