Error[8]: Undefined offset: 6, File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 121
File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 473, decode(

概述是否可能扩展一个通用类为专门/构造的通用类型?我想扩展Int数组与一个方法来计算其元素的总和。 例如 extension Array<Int> { func sum() -> Int { return reduce(0) { $0 + $1 } }} 使用Swift 2,可以使用协议扩展实现(有关详细信息,请参阅 The Swift Programming L 是否可能扩展一个通用类为专门/构造的通用类型?我想扩展Int数组与一个方法来计算其元素的总和。

例如

extension Array<Int> {    func sum() -> Int {        return reduce(0) { 
extension SequenceType where Generator.Element == Int {    var sum: Int {        return reduce(0,combine: +)    }}
+ } }}
使用Swift 2,可以使用协议扩展实现(有关详细信息,请参阅 The Swift Programming Language: Protocols)。

总而言之,你可以做到:

let nums = [1,2,3,4]print(nums.sum) // Prints: "10"

用法:

protocol Addable {    init()    func + (lhs: Self,rhs: Self) -> Self}extension Int   : Addable {}extension Double: Addable {}extension String: Addable {}// ...

或者,对于更通用的东西,你可以@Wes Campaigne建议和创建一个可添加协议:

extension SequenceType where Generator.Element: Addable {    var sum: Generator.Element {        return reduce(Generator.Element(),combine: +)    }}

接下来,扩展SequenceType以添加可添加元素的序列:

let doubles = [1.0,2.0,3.0,4.0]print(doubles.sum) // Prints: "10.0"let strings = ["a","b","c"]print(strings.sum) // Prints: "abc"

用法:

[+++] 总结

以上是内存溢出为你收集整理的泛型 – 在Swift中构造泛型类型的扩展全部内容,希望文章能够帮你解决泛型 – 在Swift中构造泛型类型的扩展所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

)
File: /www/wwwroot/outofmemory.cn/tmp/route_read.php, Line: 126, InsideLink()
File: /www/wwwroot/outofmemory.cn/tmp/index.inc.php, Line: 165, include(/www/wwwroot/outofmemory.cn/tmp/route_read.php)
File: /www/wwwroot/outofmemory.cn/index.php, Line: 30, include(/www/wwwroot/outofmemory.cn/tmp/index.inc.php)
泛型 – 在Swift中构造泛型类型的扩展_app_内存溢出

泛型 – 在Swift中构造泛型类型的扩展

泛型 – 在Swift中构造泛型类型的扩展,第1张

概述是否可能扩展一个通用类为专门/构造的通用类型?我想扩展Int数组与一个方法来计算其元素的总和。 例如 extension Array<Int> { func sum() -> Int { return reduce(0) { $0 + $1 } }} 使用Swift 2,可以使用协议扩展实现(有关详细信息,请参阅 The Swift Programming L 是否可能扩展一个通用类为专门/构造的通用类型?我想扩展Int数组与一个方法来计算其元素的总和。

例如

extension Array<Int> {    func sum() -> Int {        return reduce(0) { 
extension SequenceType where Generator.Element == Int {    var sum: Int {        return reduce(0,combine: +)    }}
+ } }}
使用Swift 2,可以使用协议扩展实现(有关详细信息,请参阅 The Swift Programming Language: Protocols)。

总而言之,你可以做到:

let nums = [1,2,3,4]print(nums.sum) // Prints: "10"

用法:

protocol Addable {    init()    func + (lhs: Self,rhs: Self) -> Self}extension Int   : Addable {}extension Double: Addable {}extension String: Addable {}// ...

或者,对于更通用的东西,你可以@Wes Campaigne建议和创建一个可添加协议:

extension SequenceType where Generator.Element: Addable {    var sum: Generator.Element {        return reduce(Generator.Element(),combine: +)    }}

接下来,扩展SequenceType以添加可添加元素的序列:

let doubles = [1.0,2.0,3.0,4.0]print(doubles.sum) // Prints: "10.0"let strings = ["a","b","c"]print(strings.sum) // Prints: "abc"

用法:

总结

以上是内存溢出为你收集整理的泛型 – 在Swift中构造泛型类型的扩展全部内容,希望文章能够帮你解决泛型 – 在Swift中构造泛型类型的扩展所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1058047.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存