首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >RealmSwift获取每个T对象

RealmSwift获取每个T对象
EN

Stack Overflow用户
提问于 2017-08-22 21:13:39
回答 1查看 71关注 0票数 0

我有一个对象列表T,我想计算它们的和(T对象)

代码语言:javascript
运行
复制
var objects: Observable<List<T>>

T对象有一个返回Int值的方法。主要思想是获取每个对象并准备数组值(flatMap函数)。下一步将是使用Int值的reduce函数。

代码语言:javascript
运行
复制
let sum = values.reduce(0) { $0 + $1 }

问:如何获取每个T对象?

EN

回答 1

Stack Overflow用户

发布于 2017-08-22 21:39:01

看看下面的解决方案,它试图演示您正在尝试做什么,您可能需要一个具有int属性的类型T的协议,如下例所示。你可以在游乐场上试试。

代码语言:javascript
运行
复制
protocol Countable {

    var value: Int { get }
    init(value: Int)
}


class User: Countable {

    var value: Int = 0

    required convenience init(value: Int) {
        self.init()
        self.value = value
    }
}


class UserGroup<T: Countable> {

    func calculateTotal() {
        let users: [T] = [T(value: 2), T(value: 21)]
        let total = users.flatMap { ($0 as Countable).value }.reduce(0) { $0 + $1 }
        print("total", total)
    }
}

let userGroup = UserGroup<User>()
userGroup.calculateTotal()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45818676

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档