今天看到一篇关于swift中内置函数文章,发现有好多方便好用的swift内置函数,大家都没发现,今天在这里给大家介绍一下,我是整理别人的文章,尊重原创,原文链接
Swift包含了74个内置函数,但在 The Swift Programming Langage 一书中只介绍了其中的7个,其它的都没有在文档中体现。
这篇文章列举出了所有的Swift库函数。文中所谓的 内置函数 是指无需引入任何模块(比如说Fundation等)即可以直接使用的函数。
下面先来看看7个在文档中提到的库函数:
下面列出一些很实用,但未在文档中体现的库函数
<pre>
//断言,参数如果为true
则继续,否则抛出异常
//assert mentioned on page 55
assert(true)
</pre>
<pre>
// 返回所有参数中的最小值
// min mentioned on page 246
min(8, 2, 3) == 2
</pre>
<pre>
// abs(signedNumber):返回数字的绝对值
// min mentioned on page 246
min(8, 2, 3) == 2
</pre>
<pre>
// dump(object):打印出某个对象object的所有信息
var languages = ["Swift", "Objective-C"]
dump(languages)
// Prints:
// ▿ 2 elements
// - [0]: Swift
// - [1]: Objective-C
</pre>
<pre>
// indices(sequence):返回序列sequence中所有元素的位置(indices是index的复数)
var language = ["Swift","Objective-C"]
for i in language.indices {
print("i= \(i)")
}
// i= 0
// i= 1
</pre>
<pre>
// join(separator, sequence):将序列sequence通过分隔符separator连成一个字符串,并返回此字符串。
var language = ["Swift","Objective-C"]
min(8, 2, 3) == 2
print(language.joined(separator: "<<<>>>"))
//Swift<<<>>>Objective-C
</pre>
关于Swift的一些高级操作,如reduce,map,filter,请看CocoaChina这篇文章,我认为讲的很详细 文章链接
<pre>
//reversered()返回逆序的序列
let numbers = [23,56,34,75,456]
for i in numbers.reversed() {
print(i)
}
//456
//75
//34
//56
//23
</pre>
<pre>
镜像Mirror的使用
struct Person {
var name: String
var age: Int
var weight:Double
}
let person:Any = Person(name: "13", age: 12,weight:99)
dump(person)
做个简单的对象转字典
func anyObjectConvertDic(any: Any) -> [String: Any]? {
var dic: [String: Any] = [:]
for children in Mirror.init(reflecting: any).children {
dic[children.label!] = children.value
}
return dic
}
print(anyObjectConvertDic(any: p))
//▿ Person
// - name: "张三"
// - age: 34
// - weight: 135.0
// Optional(["name": "张三", "age": 34, "weight": 135.0])
</pre>
是不是帅掉渣了,其他的就不在这里赘述了,如果想看其他,请点击上方的链接,不过有些在swift3.0上已经过时了