Jon*_*gel 3 init swift combine
我正在查看一些 Apple Combine 源代码,并看到一个 Publisher 名称MergeMany及其定义如下的 init 方法:
public init(_ upstream: Upstream...)
Run Code Online (Sandbox Code Playgroud)
...后面的三个点是什么Upstream?的值Upstream只是结构定义中定义的另一个发布者。
public struct MergeMany<Upstream> : Publisher where Upstream : Publisher {
Run Code Online (Sandbox Code Playgroud)
这三个点意味着它是一个可变参数函数,可以采用Upstream. 这是 Swift 语言的功能,而不是合并框架的功能。
来自 Sergio Pietri 的博客文章:
\n\n\n为什么我们应该使用可变参数函数?当您声明这种类型的函数时,您就为代码增加了灵活性。例如: printf 可能是使用此原理的最著名的函数。printf 将接受 N 个参数,并有许多不同的参数来格式化它将打印的输出。
\n
并来自 Swift文档:
\n\n\n可变参数接受零个或多个指定类型的值。您可以使用可变参数来指定在调用函数时可以向该参数传递不同数量的输入值。通过在参数\xe2\x80\x99s 类型名称后插入三个句点字符 (...) 来写入可变参数参数。\n传递给可变参数的值在函数\xe2\x80\x99s 主体中作为数组提供适当的类型。例如,名称为数字且类型为 Double... 的可变参数在函数\xe2\x80\x99s 主体中作为称为 [Double] 类型的数字的常量数组提供。
\n
| 归档时间: |
|
| 查看次数: |
3236 次 |
| 最近记录: |