Swift中常用标准库函数的使用

2 篇文章 0 订阅
// 取绝对值
abs(-10)

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

// 判断序列中是否包含指定的字符串
contains(languages, "Swift")

// 去除序列中的第一个元素
var oldLanguages = dropFirst(languages)
equal(oldLanguages, ["Objective-C"])

// 去除序列中的最后一个元素
var firstLanguages = dropLast(languages)
equal(firstLanguages, ["Swift"])

// 对指定的序列中的元素进行闭包中的操作,然后返回新的序列
let intArr = [1,2,3,4,5,6,7,8,9,0]
let filterArr = filter(intArr, {
    $0 % 2 == 0
})

// 返回序列中指定元素的位置
find(languages, "Objective-C") == 1
find(languages, "Java") == nil
find([29, 85, 42], 42) == 2


// indices(sequence):返回sequence中所有元素的位置
equal(indices([29,85,42]), [0,1,2])
for i in indices([29, 85, 42]) {
    println(i)
}

// join(separator, sequence):将序列sequence通过分隔符separator连成一个字符串
join(":", ["A","B","C"])

// map(sequence,transformClosure):对序列sequence中的每个元素都执行includeElementClosure闭包,并将所有闭包的结果合成一个新序列sequence并返回。
equal(map(1...3, {
    $0*5
}), [5,10,15])


// max(comparable1, comparable2, etc.)返回参数中最大的值
max(8, 2, 3) == 8


// maxElement(sequence): 返回序列sequence中的最大值
maxElement([8, 2, 3])

// minElement(sequence): 返回序列sequence中的最小值
minElement([8, 2, 3])

// reduce(sequence, initial, combineClosure):给定一个序列sequence和initial初始值,然后将initial和序列中的第一个元素作为参数传入到combineClosure中进行计算,得到的结构保存到initial中;然后再将initial和第二个元素传入到combineClosure中进行计算,etc.
reduce(languages, "") {
    $0+$1
}

reduce([10, 20, 5], 1) {
    $0*$1
}

// reverse(sequence):返回逆序的序列sequence
reverse([1,2,3])


// startsWith(sequence1, sequence2): 如果sequence1中开头的元素和sequence2中的所有元素都相等,则返回true
startsWith([1,2,3], [1,2,3,5])

//断言,参数如果为`true`则继续,否则抛出异常
// assert mentioned on page 55
assert(true)


//计算序列的元素个数

// countElements mentioned on page 79
count("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)")
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值