Swift2.0語言教程之Swift2.0語言中的標準函式
Swift2.0語言教程之Swift2.0語言中的標準函式
Swift2.0中的標準函式
函式除了可以根據引數列表的有無分為無參函式和有參函式,還可以從定義角度分為使用者自定義函式和標準函式兩種。以上的示例都是使用者自定函式。Swift提供了74個標準函式,這些函式都可以直接去使用,不需要進行定義。本節將針對常用的標準函式進行詳細的講解。
Swift2.0中的絕對值函式abs()
abs()函式的功能是求數值的絕對值。其語法形式如下:
-
abs(數值)
函式的返回值是一個零或者正數。
【示例7-17】以下將使用abs()函式獲取-10、10、0、-1.233、1.233的絕對值。程式碼如下:
-
import Foundation
-
//求整數的絕對值
-
let value1=abs(-10)
-
let value2=abs(10)
-
let value3=abs(0)
-
//求浮點數的絕對值
-
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.9和10的最大值,13.8、20、88.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.9和10的最小值,獲取13.8、20、88.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.9、10和字串"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()函式獲取序列sequence1、sequence2和範圍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()函式獲取序列sequence1、sequence2和範圍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()函式對languages和value陣列進行排序。程式碼如下:
-
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 函式對序列languages和value進行倒序排列。程式碼如下:
-
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人!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29597077/viewspace-1736300/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Swift2.0語言教程之下標指令碼Swift指令碼
- Swift2.0語言教程之閉包Swift
- Swift2.0語言教程之函式的返回值與函式型別Swift函式型別
- C 語言中的 time 函式函式
- C語言中的abort函式C語言函式
- C語言標準函式庫C語言函式
- c語言中通過函式指標實現函式過載C語言函式指標
- C語言中qsort函式的用法C語言函式
- C語言中函式printf()和函式scanf()的用法C語言函式
- C語言中函式的返回值C語言函式
- 淺談C語言中函式的使用C語言函式
- dart系列之:dart語言中的函式Dart函式
- C語言函式手冊:c語言庫函式大全|C語言標準函式庫|c語言常用函式查詢C語言函式
- C語言中關於時間的函式函式
- C語言中的 static變數、static函式C語言變數函式
- linux下C語言中的mkdir函式與rmdir函式LinuxC語言函式
- 淺析C語言中的setjmp與longjmp函式C語言函式
- R語言中的迴圈函式(Grouping Function)R語言函式Function
- 詳細對比C語言中的chmod()函式和fchmod()函式C語言函式
- swift2.0實現String.spilt()方法Swift
- C語言中變參函式傳參探究C語言函式
- C語言中庫函式呼叫幾例(轉)C語言函式
- C語言中資料型別轉換函式C語言資料型別函式
- C語言 函式指標C語言函式指標
- python語言中類和函式的作用及區別!Python函式
- C 語言中返回字串函式的四種實現方法字串函式
- 使用Java委託實現面向函式式語言中的map/filterJava函式Filter
- go語言教程之淺談陣列和切片的異同Go陣列
- C語言中使用系統自帶的快排函式C語言函式
- Rust語言教程Rust
- YAML 語言教程YAML
- Go語言標準庫time之日期和時間相關函式Go函式
- C語言函式指標與回撥用函式C語言函式指標
- C語言中取地址符&做函式形參?—— 引用的討論C語言函式
- 程式語言中表示式更優於語句
- C語言函式指標基礎C語言函式指標
- Go 語言中的兩種 slice 表示式Go
- Swift3.0語言教程使用Unicode正規化標準化獲取字串SwiftUnicode字串