日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Swift编程语言学习2.1——基础运营商(在)

發(fā)布時(shí)間:2024/9/5 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Swift编程语言学习2.1——基础运营商(在) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

操作員正在檢查,更改。歸并值特殊符號(hào)或短語(yǔ)。例如,加+這兩個(gè)數(shù)字相加(例如let i = 1 + 2)。

算如更復(fù)雜的邏輯和操作的實(shí)施&&(例如if enteredDoorCode && passedRetinaScan),又或讓 i 值加1的便捷運(yùn)算符自增運(yùn)算符++i等。

Swift 支持大部分標(biāo)準(zhǔn) C 語(yǔ)言的運(yùn)算符,且改進(jìn)很多特性來(lái)降低常規(guī)編碼錯(cuò)誤。如,賦值符(=)不返回值。以防止把想要推斷相等運(yùn)算符(==)的地方寫(xiě)成賦值符導(dǎo)致的錯(cuò)誤。

數(shù)值運(yùn)算符(+,-,*。/,%等)會(huì)檢測(cè)并不同意值溢出,以此來(lái)避免保存變量時(shí)因?yàn)樽兞看笥诨蛐∮谄漕?lèi)型所能承載的范圍時(shí)導(dǎo)致的異常結(jié)果。

當(dāng)然同意你使用 Swift 的溢出運(yùn)算符來(lái)實(shí)現(xiàn)溢出。詳情參見(jiàn)溢出運(yùn)算符。

差別于 C 語(yǔ)言。在 Swift 中你能夠?qū)Ω↑c(diǎn)數(shù)進(jìn)行取余運(yùn)算(%),Swift 還提供了 C 語(yǔ)言沒(méi)有的表達(dá)兩數(shù)之間的值的區(qū)間運(yùn)算符,(a..b和a...b),這方便我們表達(dá)一個(gè)區(qū)間內(nèi)的數(shù)值。

本章節(jié)僅僅描寫(xiě)敘述了 Swift 中的基本運(yùn)算符,高級(jí)運(yùn)算符包括了高級(jí)運(yùn)算符,及怎樣自己定義運(yùn)算符,及怎樣進(jìn)行自己定義類(lèi)型的運(yùn)算符重載。


術(shù)語(yǔ)

運(yùn)算符有一元,二元和三元運(yùn)算符。

?

一元運(yùn)算符對(duì)單一操作對(duì)象操作(如-a)。

一元運(yùn)算符分前置符和后置運(yùn)算符,前置運(yùn)算符需緊排操作對(duì)象之前(如!b),后置運(yùn)算符需緊跟操作對(duì)象之后(如i++)。

二元運(yùn)算符操作兩個(gè)操作對(duì)象(如2 + 3),是中置的,由于它們出如今兩個(gè)操作對(duì)象之間。

三元運(yùn)算符操作三個(gè)操作對(duì)象,和 C 語(yǔ)言一樣,Swift 僅僅有一個(gè)三元運(yùn)算符,就是三元條件運(yùn)算符(a ?

b : c)。

受運(yùn)算符影響的值叫操作數(shù)。在表達(dá)式1 + 2中,加號(hào)+是二元運(yùn)算符。它的兩個(gè)操作數(shù)是值1和2。

?

?

賦值運(yùn)算符

賦值運(yùn)算(a = b)。表示用b的值來(lái)初始化或更新a的值:

?

let b = 10 var a = 5 a = b // a 如今等于 10

假設(shè)賦值的右邊是一個(gè)多元組,它的元素能夠立即被分解多個(gè)變量或變量:

?

let (x, y) = (1, 2) // 如今 x 等于 1, y 等于 2

與 C 語(yǔ)言和 Objective-C 不同,Swift 的賦值操作并不返回不論什么值。

所以下面代碼是錯(cuò)誤的:

?

let (x, y) = (1, 2) // 如今 x 等于 1, y 等于 2

這個(gè)特性使得你無(wú)法把(==)錯(cuò)寫(xiě)成(=)了,因?yàn)閕f x = y是錯(cuò)誤代碼。Swift 從底層幫你避免了這些代碼錯(cuò)誤。

?

?

數(shù)值運(yùn)算

Swift 讓全部數(shù)值類(lèi)型都支持了主要的四則運(yùn)算:

?

加法(+)

減法(-)

乘法(*)

除法(/)

1 + 2 // 等于 3 5 - 3 // 等于 2 2 * 3 // 等于 6 10.0 / 2.5 // 等于 4.0

與 C 語(yǔ)言和 Objective-C 不同的是,Swift 默認(rèn)不同意在數(shù)值運(yùn)算中出現(xiàn)溢出情況。但你能夠使用Swift 的溢出運(yùn)算符來(lái)達(dá)到你有目的的溢出(如a &+ b)。

詳情參見(jiàn)溢出運(yùn)算符。

?

加法運(yùn)算符也用于String的拼接:

?

"hello, " +"world" // 等于"hello, world"

兩個(gè)Character值或一個(gè)String和一個(gè)Character值。相加會(huì)生成一個(gè)新的String值:

?

l

et dog: Character = "d" let cow: Character = "c" let dogCow = dog + cow // dogCow 如今是 "dc"

詳情參見(jiàn)字符。字符串的拼接。

?

求余運(yùn)算

求余運(yùn)算(a % b)是計(jì)算b的多少倍剛剛好能夠容入a,返回多出來(lái)的那部分(余數(shù))。

?

注意:

?

求余運(yùn)算(%)在其它語(yǔ)言也叫取模運(yùn)算。然而嚴(yán)格說(shuō)來(lái)。我們看該運(yùn)算符對(duì)負(fù)數(shù)的操作結(jié)果,"求余"比"取模"更合適些。

我們來(lái)談?wù)勅∮嗍窃趺椿厥?#xff0c;計(jì)算9 % 4,你先計(jì)算出4的多少倍會(huì)剛好能夠容入9中:

?

2倍,很好,那余數(shù)是1

?

在 Swift 中這么來(lái)表達(dá):

?

9 % 4 // 等于 1

為了得到a % b的結(jié)果,%計(jì)算了下面等式,并輸出余數(shù)作為結(jié)果:

?

a = (b × 倍數(shù)) + 余數(shù)

?

當(dāng)倍數(shù)取最大值的時(shí)候。就會(huì)剛好能夠容入a中。

?

把9和4代入等式中。我們得1:

?

9 = (4 × 2) + 1

相同的方法。我來(lái)們計(jì)算 -9 % 4:

?

-9 % 4??// 等于 -1

把-9和4代入等式,-2是取到的最大整數(shù):

?

-9 = (4 × -2) + -1

余數(shù)是-1。

?

在對(duì)負(fù)數(shù)b求余時(shí)。b的符號(hào)會(huì)被忽略。這意味著 a % b 和 a % -b的結(jié)果是同樣的。

?

浮點(diǎn)數(shù)求余計(jì)算

不同于 C 語(yǔ)言和 Objective-C,Swift 中是能夠?qū)Ω↑c(diǎn)數(shù)進(jìn)行求余的。

?

8 % 2.5 // 等于 0.5

這個(gè)樣例中。8除于2.5等于3余0.5,所以結(jié)果是一個(gè)Double值0.5。


自增和自增運(yùn)算

和 C 語(yǔ)言一樣,Swift 也提供了方便對(duì)變量本身加1或減1的自增(++)和自減(--)的運(yùn)算符。

其操作對(duì)象能夠是整形和浮點(diǎn)型。 ?

?

var i = 0 ++i // 如今 i = 1

每調(diào)用一次++i,i的值就會(huì)加1。實(shí)際上,++i是i = i + 1的簡(jiǎn)寫(xiě),而--i是i = i - 1的簡(jiǎn)寫(xiě)。

?

++和--既是前置又是后置運(yùn)算。++i,i++,--i和i--都是有效的寫(xiě)法。

?

我們須要注意的是這些運(yùn)算符改動(dòng)了i后有一個(gè)返回值。

假設(shè)你僅僅想改動(dòng)i的值。那你就能夠忽略這個(gè)返回值。但假設(shè)你想使用返回值,你就須要留意前置和后置操作的返回值是不同的。

?

當(dāng)++前置的時(shí)候,先自増?jiān)俜祷亍?/p>

當(dāng)++后置的時(shí)候。先返回再自增。

比如:

?

var a = 0 let b = ++a // a 和 b 如今都是 1 let c = a++ // a 如今 2, 但 c 是 a 自增前的值 1

上述樣例。let b = ++a先把a(bǔ)加1了再返回a的值。所以a和b都是新值1。

?

而let c = a++。是先返回了a的值。然后a才加1。所以c得到了a的舊值1,而a加1后變成2。

?

除非你須要使用i++的特性。不然推薦你使用++i和--i,由于先改動(dòng)后返回這種行為更符合我們的邏輯。

?

一元負(fù)號(hào)

數(shù)值的正負(fù)號(hào)能夠使用前綴-(即一元負(fù)號(hào))來(lái)切換:

?

let three = 3 let minusThree = -three // minusThree 等于 -3 let plusThree = -minusThree // plusThree 等于 3, 或 "負(fù)負(fù)3"

一元負(fù)號(hào)(-)寫(xiě)在操作數(shù)之前,中間沒(méi)有空格。

?

一元正號(hào)

一元正號(hào)(+)不做不論什么改變地返回操作數(shù)的值。

?

let minusSix = -6 let alsoMinusSix = +minusSix // alsoMinusSix 等于 -6

盡管一元+做無(wú)用功。但當(dāng)你在使用一元負(fù)號(hào)來(lái)表達(dá)負(fù)數(shù)時(shí),你能夠使用一元正號(hào)來(lái)表達(dá)正數(shù),如此你的代碼會(huì)具有對(duì)稱(chēng)美。

?

?

復(fù)合賦值(Compound Assignment Operators)

如同強(qiáng)大的 C 語(yǔ)言,Swift 也提供把其它運(yùn)算符和賦值運(yùn)算(=)組合的復(fù)合賦值運(yùn)算符,加賦運(yùn)算(+=)是當(dāng)中一個(gè)樣例:

?

var a = 1 a += 2 // a 如今是 3

表達(dá)式a += 2是a = a + 2的簡(jiǎn)寫(xiě)。一個(gè)加賦運(yùn)算就把加法和賦值兩件事完畢了。

?

注意:

?

復(fù)合賦值運(yùn)算沒(méi)有返回值,let b = a += 2這類(lèi)代碼是錯(cuò)誤。

這不同于上面提到的自增和自減運(yùn)算符。

在表達(dá)式章節(jié)里有復(fù)合運(yùn)算符的完整列表。 ?

?

比較運(yùn)算

全部標(biāo)準(zhǔn) C 語(yǔ)言中的比較運(yùn)算都能夠在 Swift 中使用。

?

等于(a == b)

不等于(a!= b)

大于(a > b)

小于(a < b)

大于等于(a >= b)

小于等于(a <= b)

注意:

?

Swift 也提供恒等===和不恒等!==這兩個(gè)比較符來(lái)推斷兩個(gè)對(duì)象是否引用同一個(gè)對(duì)象實(shí)例。

很多其它細(xì)節(jié)在類(lèi)與結(jié)構(gòu)。

每一個(gè)比較運(yùn)算都返回了一個(gè)標(biāo)識(shí)表達(dá)式是否成立的布爾值:

?

1 == 1 // true, 由于 1 等于 1 2 != 1 // true, 由于 2 不等于 1 2 > 1 // true, 由于 2 大于 1 1 < 2 // true, 由于 1 小于2 1 >= 1 // true, 由于 1 大于等于 1 2 <= 1 // false, 由于 2 并不小于等于 1

比較運(yùn)算多用于條件語(yǔ)句。如if條件:

?

let name = "world" if name == "world" {println("hello, world") } else {println("I'm sorry \(name), but I don't recognize you") } // 出口 "hello,world", 由于 `name` 它等于 "world"

左右if聲明。請(qǐng)參閱控制流。

轉(zhuǎn)載于:https://www.cnblogs.com/hrhguanli/p/4758698.html

總結(jié)

以上是生活随笔為你收集整理的Swift编程语言学习2.1——基础运营商(在)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。