查看: 14|回复: 0

[Swift] Swift map和filter函数原型基础示例

[复制链接]

2

主题

0

回帖

0

积分

积极分子

金币
0
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2008-3-12
发表于 2023-7-7 10:41:27 | 显示全部楼层 |阅读模式

map函数原型

/// Returns an array containing the results of mapping the given closure
/// over the sequence's elements.
///
/// In this example, `map` is used first to convert the names in the array
/// to lowercase strings and then to count their characters.
///
///     let cast = ["Vivien", "Marlon", "Kim", "Karl"]
///     let lowercaseNames = cast.map { $0.lowercased() }
///     // 'lowercaseNames' == ["vivien", "marlon", "kim", "karl"]
///     let letterCounts = cast.map { $0.count }
///     // 'letterCounts' == [6, 6, 3, 4]
///
/// - Parameter transform: A mapping closure. `transform` accepts an
///   element of this sequence as its parameter and returns a transformed
///   value of the same or of a different type.
/// - Returns: An array containing the transformed elements of this
///   sequence.
@inlinable public func map<T>(_ transform: (Element) throws -> T) rethrows -> [T]
let cast = ["Vivien", "Marlon", "Kim", "Karl"]
let lowercaseNames = cast.map {
    $0.lowercased()
}
print(lowercaseNames) // ["vivien", "marlon", "kim", "karl"]
let arrayString = ["Ann", "Bob", "Tom", "Lily", "HanMeiMei", "Jerry"]
// 计算每个元素的个数,生成个数数组
let arrayCount = arrayString.map { (str) -> Int in
    return str.count
}
print("arrayCount: \(arrayCount)")
// arrayCount: [3, 3, 3, 4, 9, 5]

filter函数原型

// @inlinable public func filter(_ isIncluded: (Element) throws -> Bool) rethrows -> [Element]
let array = [-5, 4, -3, 1, 2]
var resultArray = array.filter { (item) -> Bool in
    return item > 0
}
print(resultArray) // [4, 1, 2]
// 语法糖写法
resultArray = array.filter {
    $0 > 0
}
print(resultArray) // [4, 1, 2]

以上就是Swift map和filter函数原型基础示例的详细内容,更多关于Swift map filter函数原型的资料请关注琼殿技术社区其它相关文章!

您可能感兴趣的文章:
  • Swift 进阶 —— map 和 flatMap的使用
  • Swift函数提前返回实例详解
  • Swift如何调用Objective-C的可变参数函数详解
  • swift 常用高阶函数分享
  • C语言中调用Swift函数实例详解
  • 深入理解swift变量和函数
  • 详解Swift中的函数及函数闭包使用
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部