gpt4 book ai didi

swift - 将通用值参数指定为对象初始化调用的参数

转载 作者:搜寻专家 更新时间:2023-10-31 08:16:03 27 4
gpt4 key购买 nike

我有一个结构 Event,它使用时间和值进行初始化。

value 属性的类型在创建事件时决定。它可以是 IntDouble 原语之一。

我应该如何在 Swift 中实现它?

我希望能够像这样创建一个新的 Event 对象:

let event = Event(time: Date.init(), value: EventValue<Double>(40.3467)) 

我找到了 this但我做不出来。

我已经尝试了很多这样的排列,我能做的最好的是

struct Event {
let time: Date
var value: EventValue? // This line 'requires arguments in <...>'
}

struct EventValue <T> {
let value: T?
}

最佳答案

也将通用参数添加到您的 Event 结构中,然后将此类型用于 EventValue 的参数

struct Event<T> {
let time: Date
var value: EventValue<T>?
}

然后只需初始化 EventValue 而不指定类型,因为编译器允许您只传递与通用参数约束相对应的值。因为你的参数没有约束,它等于Any,所以你可以传递任何类型

let event = Event(time: Date.init(), value: EventValue(value: 40.3467))

关于swift - 将通用值参数指定为对象初始化调用的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54260412/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com