Swift2.0語言教程之Swift2.0語言中的標準函數

Swift2.0語言教程之Swift2.0語言中的標準函數

Swift2.0中的標準函數

函數除了能夠根據參數列表的有無分爲無參函數和有參函數,還能夠從定義角度分爲用戶自定義函數和標準函數兩種。以上的示例都是用戶自定函數。Swift提供了74個標準函數,這些函數均可以直接去使用,不須要進行定義。本節將針對經常使用的標準函數進行詳細的講解。編程

Swift2.0中的絕對值函數abs()

abs()函數的功能是求數值的絕對值。其語法形式以下:數組

  • abs(數值)函數

函數的返回值是一個零或者正數。spa

【示例7-17】如下將使用abs()函數獲取-10100-1.2331.233的絕對值。代碼以下:orm

  • import Foundation排序

  • //求整數的絕對值教程

  • let value1=abs(-10)字符串

  • let value2=abs(10)it

  • let value3=abs(0)io

  • //求浮點數的絕對值

  • let value4=abs(-1.233)

  • let value5=abs(1.233)

  • print("value1=\(value1)")

  • print("value2=\(value2)")

  • print("value3=\(value3)")

  • print("value4=\(value4)")

  • print("value5=\(value5)")

在此代碼中,正數的絕對值是它自己;負數的絕對值爲正數;0的絕對值還爲0。運行結果以下:

  • value1=10

  • value2=10

  • value3=0

  • value4=1.233

  • value5=1.233

注意:abs()中的參數必須是數值,不能夠是數值之外的東西,如字符、字符串等。如如下的代碼,將獲取字符串"aaa"的絕對值。代碼以下:

  • import Foundation

  • let value1=abs("aaa")

  • print("value1=\(value1)")

因爲abs()的參數爲字符串致使程序出現瞭如下錯誤:

  • Cannot find an overload for 'abs' that accepts an argument list of type '(String)'

Swift2.0中最大值函數max()/最小值min()

在編程中,常常須要計算幾個參數的最大值或者最小值,此時可使用標準函數中的max()min()函數實現。如下是對這兩個函數的詳細講解。

1.獲取最大值

max()函數能夠獲取幾個參數的最大值。其語法形式以下:

  • max(參數1,參數2,參數3,)

其中,參數能夠是數值,也能夠是字符串或字符。

【示例7-18】如下將使用max()函數,依次獲取1.910的最大值,13.82088.88的最大值以及字符串"Hello""Swift""Zone"的最大值。代碼以下:

  • import Foundation

  • let maxValue1=max(1.9,10)

  • let maxValue2=max(13.8,20,88.88)

  • let maxValue3=max("Hello","Swift","Zone")

  • print("maxValue1=\(maxValue1)")

  • print("maxValue2=\(maxValue2)")

  • print("maxValue3=\(maxValue3)")

在對字符串進行比較時,是對字符串中的字符進行比較。首先會判斷3個字符的首字符哪一個大。若是找到最大的字符,就以此字符開頭的字符串爲最大值;若是判斷的3個首字符相同,那麼在進行第二個字符的比較,以此類推。運行結果以下:

  • maxValue1=10.0

  • maxValue2=88.88

  • maxValue3=Zone

2.獲取最小值

min()函數能夠獲取幾個參數的最小值。其語法形式以下:

  • min(參數1,參數2,參數3,)

其中,參數一樣能夠是數值、字符串或字符。

【示例7-19】如下將使用min()函數,獲取1.910的最小值,獲取13.82088.88的最小值,字符串"Swift""Hello""iOS"的最小值。代碼以下:

  • import Foundation

  • let minValue1=min(1.9,10)

  • let minValue2=min(13.8,20,88.88)

  • let minValue3=min("Swift","Hello","iOS")

  • print("minValue1=\(minValue1)")

  • print("minValue2=\(minValue2)")

  • print("minValue3=\(minValue3)")

運行結果以下:

  • minValue1=1.9

  • minValue2=13.8

  • minValue3=Hello

注意:在使用max()min()時若是是數值,比較的參數都是數值。若是是字符或者字符串,比較的參數也是字符或者字符串。不能夠在一個函數中同時比較數值和字符串、字符。如下的代碼將比較1.910和字符串"Hello"的最小值。代碼以下:

  • import Foundation

  • let minValue=min(1.9,10,"Hello")

  • println("minValue=\(minValue)")

在此代碼中,因爲min()函數對數值和字符串進行比較,致使程序出現瞭如下的錯誤:

  • Cannot find an overload for 'min' that accepts an argument list of type '(Double, Int, String)'

Swift2.0中序列的最大值函數maxElement()/最小值函數minElement()

在一個序列中,每每須要獲取元素的最大值或者最小值。此時可使用maxElement()minElement()函數。如下是對這兩個函數的詳細講解。

1.序列的最大值

maxElement()函數獲取一個序列中最大值的元素。其語法形式以下:

  • 序列.maxElement()

其中,序列能夠是數值,也能夠是一個範圍。

【示例7-20】下面使用maxElement()函數獲取序列sequence1sequence2和範圍1...100中最大值的元素。代碼以下:

  • import Foundation

  • let sequence1=[9,8,2,3]

  • let sequence2=["Ad","Ab","Ac"]

  • let maxValue1=sequence1.maxElement()!

  • print("maxValue1=\(maxValue1)")

  • let maxValue2=(1...100).maxElement()!

  • print("maxValue2=\(maxValue2)")

  • let maxValue3=sequence2.maxElement()!

  • print("maxValue3=\(maxValue3)")

其中,字符串構成的序列sequence2的判斷方式與函數max()相同,都是依次比較字符串的字母大小。運行結果以下:

  • maxValue1=9

  • maxValue2=100

  • maxValue3=Ad

2.序列的最小值

minElement()函數能夠獲取一個序列中最小值的元素。其語法形式以下:

  • 序列.minElement()

其中,序列能夠是數值,也能夠是一個範圍。

【示例7-21】如下將使用minElement()函數獲取序列sequence1sequence2和範圍1...100中最小值的元素。代碼以下:

  • import Foundation

  • let sequence1=[9,8,2,3]

  • let sequence2=["Ad","Ab","Ac"]

  • let minValue1=sequence1.minElement()!

  • print("minValue1=\(minValue1)")

  • let minValue2=(1...100).minElement()!

  • print("minValue2=\(minValue2)")

  • let minValue3=sequence2.minElement()!

  • print("minValue3=\(minValue3)")

運行結果以下:

  • minValue1=2

  • minValue2=1

  • minValue3=Ab

Swift2.0中判斷序列是否包含指定元素函數contains()

contains()函數能夠判斷一個序列中是否包含指定的元素。其語法形式以下:

  • 序列.contains(元素)

其中,函數的返回值類型爲布爾類型。當返回true時,表示表達序列中包含指定的元素;當返回false時,表示不包含。

【示例7-22】如下代碼使用contains()函數函數判斷序列languages中是否包含元素"Swift""Java"。代碼以下:

  • import Foundation

  • var languages = ["Swift", "Objective-C","C"]

  • //判斷在languages數組中是否包含"Swift"字符串

  • if languages.contains("Swift") == true  {

  •     print("languages序列中包含元素「Swift")

  • }else{

  •     print("languages序列中不包含元素「Swift")

  • }

  • //判斷在languages數組中是否包含"Java"字符串

  • if languages.contains("Java") == true  {

  •     print("languages序列中包含元素「Java")

  • }else{

  •     print("languages序列中不包含元素「Java")

  • }

在此代碼languages"Swift""Objective-C""C"這三個元素,可是沒有"Java"元素。運行結果以下:

  • languages序列中包含元素「Swift」

  • languages序列中不包含元素「Java」

在比較的時候,會區分字母的大小寫。因此,不一樣大小寫的字符串是不一樣的。

Swift2.0中的序列排序函數sortInPlace()

在編程中,常常須要對序列中元素的進行排序。此時可使用Swift中的sortInPlace()函數來實現。其語法形式以下:

  • 序列.sortInPlace()

其中,序列是指數組。

【示例7-23】如下將使用sort()函數對languagesvalue數組進行排序。代碼以下:

  • import Foundation

  • var languages = ["Swift", "Objective-C","C"]

  • print("排序前:languages=\(languages)")

  • languages.sortInPlace()

  • print("排序後:languages=\(languages)")

運行結果以下:

  • 排序前:languages=[Swift, Objective-C, C]

  • 排序後:languages=[C, Objective-C, Swift]

Swift2.0中的序列倒序函數reverse()

reverse()函數能夠將序列中元素的倒序排列。其語法形式以下:

  • 序列.reverse()

其中,序列是指數組。

【示例7-24】如下將使用reverse 函數對序列languagesvalue進行倒序排列。代碼以下:

  • import Foundation

  • var languages = ["Swift", "Objective-C","C"]

  • print("languages=\(languages)")

  • print("倒序輸出:")

  • for i in Array(languages.reverse()){

  •     print(i)

  • }

  • var value = [1,8,4,10]

  • print("value=\(value)")

  • print("倒序輸出:")

  • for i in Array(value.reverse()){

  •     print(i)

  • }

運行結果以下:

  • languages=[Swift, Objective-C, C]

倒序輸出:

  • C

  • Objective-C

  • Swift

  • value=[1, 8, 4, 10]

倒序輸出:

  • 10

  • 4

  • 8

  • 1

本文選自:Swift2.0語言快速入門v3.0 大學霸內部資料,轉載請註明出處,尊重技術尊重IT人!

相關文章
相關標籤/搜索