程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 更多關於編程 >> Swift的74個經常使用內置函數引見

Swift的74個經常使用內置函數引見

編輯:更多關於編程

Swift的74個經常使用內置函數引見。本站提示廣大學習愛好者:(Swift的74個經常使用內置函數引見)文章只能為提供參考,不一定能成為您想要的結果。以下是Swift的74個經常使用內置函數引見正文


Swift包括了74個內置函數,但在 The Swift Programming Langage 一書中只引見了個中的7個,其它的都沒有在文檔中表現。

這篇文章羅列出了一切的Swift庫函數。文中所謂的 內置函數 是指無需引入任何模塊(好比說Fundation等)便可以直接應用的函數。

上面先來看看7個在文檔中提到的庫函數:

上面列出一些很適用,但未在文檔中表現的庫函數:

//斷言,參數假如為`true`則持續,不然拋出異常
//assert mentioned on page 55
assert(true)
 
//盤算序列的元素個數
// countElements mentioned on page 79
countElements("foo") == 3
 
//前往一個新的序列,個中每一個元素是一個元組,
//第一個值為本來元素地點的地位`index`,第二個為本來序列中的元素
// enumerate mentioned on page 94
for (i, j) in enumerate(["A", "B"]) {
 // "0:A", "1:B" will be printed
println("\(i):\(j)")
}
 
//前往一切參數中的最小值
// min mentioned on page 246
min(8, 2, 3) == 2
 
//打印
// print mentioned on page 85
print("Hello ")
 
//打印(帶換行)
// println mentioned on page 4
println("World")
 
//排序
// sort mentioned on page 14
for i in sort(["B", "A"]) {
 // "A", "B" will be printed
 println(i)
}


abs(signedNumber):前往數字的相對值


abs(-1) == 1
abs(-42) == 42
abs(42) == 42

contains(sequence, element):假如某個序列sequence(好比說一個數組)包括指定的元素element,則前往true,不然前往false。


var languages = ["Swift", "Objective-C"]
contains(languages, "Swift") == true
contains(languages, "Java") == false
contains([29, 85, 42, 96, 75], 42) == true

dropFirst(sequence):前往一個去失落了首個元素的、新的序列(好比一個新數組)。

var languages = ["Swift", "Objective-C"]
var oldLanguages = dropFirst(languages)
equal(oldLanguages, ["Objective-C"]) == true

dropLast(sequence):前往一個去失落了最初一個元素的、新的序列(好比一個新數組)。

var languages = ["Swift", "Objective-C"]
var newLanguages = dropLast(languages)
equal(newLanguages, ["Swift"]) == true

dump(object):打印出某個對象object的一切信息

var languages = ["Swift", "Objective-C"]
dump(languages)
// Prints:
// ▿ 2 elements
// - [0]: Swift
// - [1]: Objective-C


equal(sequence1, sequence2):斷定兩個序列能否相等

var languages = ["Swift", "Objective-C"]
equal(languages, ["Swift", "Objective-C"]) == true
var oldLanguages = dropFirst(languages)
equal(oldLanguages, ["Objective-C"]) == true

filter(sequence, includeElementClosure):對序列sequence中每一個元素都履行includeElementClosure閉包,並將一切閉包成果為true的元素分解一個新序列sequence並前往。

for i in filter(1...100, { $0 % 10 == 0 }) {
 // 10, 20, 30, ...
 println(i)
 assert(contains([10, 20, 30, 40, 50, 60, 70, 80, 90, 100], i))
}

find(sequence, element):前往序列sequence中某元素element的地位index。假如序列中不存在此元素,則前往nil。

var languages = ["Swift", "Objective-C"]
find(languages, "Objective-C") == 1
find(languages, "Java") == nil
find([29, 85, 42, 96, 75], 42) == 2

indices(sequence):前往序列sequence中一切元素的地位(indices是index的單數)

equal(indices([29, 85, 42]), [0, 1, 2])
for i in indices([29, 85, 42]) {
 // 0, 1, 2
 println(i)
}

join(separator, sequence):將序列sequence經由過程分隔符separator連成一個字符串,並前往此字符串。

join(":", ["A", "B", "C"]) == "A:B:C"
var languages = ["Swift", "Objective-C"]
join("/", languages) == "Swift/Objective-C"

map(sequence, transformClosure):對序列sequence中每一個元素都履行includeElementClosure閉包,並將一切閉包的成果分解一個新序列sequence並前往。

equal(map(1...3, { $0 * 5 }), [5, 10, 15])
for i in map(1...10, { $0 * 10 }) {
 // 10, 20, 30, ...
 println(i)
 assert(contains([10, 20, 30, 40, 50, 60, 70, 80, 90, 100], i))
}

max(comparable1, comparable2, etc.):前往參數中的最年夜值。

max(0, 1) == 1
max(8, 2, 3) == 8

maxElement(sequence):前往序列sequence中的最年夜值。

maxElement(1...10) == 10
var languages = ["Swift", "Objective-C"]
maxElement(languages) == "Swift"

minElements(sequence):前往序列sequence中的最小值。

minElement(1...10) == 1
var languages = ["Swift", "Objective-C"]
minElement(languages) == "Objective-C"

reduce(sequence, initial, combineClosure):給定一個序列sequence,和一個初始值initial,然後將initial和序列裡的第1個元素作為參數傳入combineClosure中停止運算,獲得的成果保留到initial;然後再將initial和第2個元素傳入combineClosure上鉤算,成果保留到initial;反復盤算直到一切sequence中的元素都盤算終了,並前往終究的initial值。


var languages = ["Swift", "Objective-C"]
reduce(languages, "", { $0 + $1 }) == "SwiftObjective-C"
reduce([10, 20, 5], 1, { $0 * $1 }) == 1000

reverse(sequence):前往逆序的序列sequence。


equal(reverse([1, 2, 3]), [3, 2, 1])
for i in reverse([1, 2, 3]) {
 // 3, 2, 1
 println(i)
}

startsWith(sequence1, sequence2):假如序列sequence1中開首的元素跟序列sequence2中的一切元素都相等,則前往true,不然前往false。


startsWith("foobar", "foo") == true
startsWith(10..100, 10..15) == true
var languages = ["Swift", "Objective-C"]
startsWith(languages, ["Swift"]) == true

下面提到的函數是我以為在Swift編程中會常常用到的函數。

完全74個內置函數:


abs(...)
advance(...)
alignof(...)
alignofValue(...)
assert(...)
bridgeFromObjectiveC(...)
bridgeFromObjectiveCUnconditional(...)
bridgeToObjectiveC(...)
bridgeToObjectiveCUnconditional(...)
c_malloc_size(...)
c_memcpy(...)
c_putchar(...)
contains(...)
count(...)
countElements(...)
countLeadingZeros(...)
debugPrint(...)
debugPrintln(...)
distance(...)
dropFirst(...)
dropLast(...)
dump(...)
encodeBitsAsWords(...)
enumerate(...)
equal(...)
filter(...)
find(...)
getBridgedObjectiveCType(...)
getVaList(...)
indices(...)
insertionSort(...)
isBridgedToObjectiveC(...)
isBridgedVerbatimToObjectiveC(...)
isUniquelyReferenced(...)
join(...)
lexicographicalCompare(...)
map(...)
max(...)
maxElement(...)
min(...)
minElement(...)
numericCast(...)
partition(...)
posix_read(...)
posix_write(...)
print(...)
println(...)
quickSort(...)
reduce(...)
reflect(...)
reinterpretCast(...)
reverse(...)
roundUpToAlignment(...)
sizeof(...)
sizeofValue(...)
sort(...)
split(...)
startsWith(...)
strideof(...)
strideofValue(...)
swap(...)
swift_MagicMirrorData_summaryImpl(...)
swift_bufferAllocate(...)
swift_keepAlive(...)
toString(...)
transcode(...)
underestimateCount(...)
unsafeReflect(...)
withExtendedLifetime(...)
withObjectAtPlusZero(...)
withUnsafePointer(...)
withUnsafePointerToObject(...)
withUnsafePointers(...)
withVaList(...)

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved