Swift-使用扩展名对变量/属性进行分组
假设我有一个这样的结构Swift-使用扩展名对变量/属性进行分组,swift,grouping,Swift,Grouping,假设我有一个这样的结构 struct MyStruct { var a1: Int // This property is for feature A var a2: Int // This property is for feature A var a3: Int // This property is for feature A var b1: Int // This property is for feature B var b2: Int // This proper
struct MyStruct {
var a1: Int // This property is for feature A
var a2: Int // This property is for feature A
var a3: Int // This property is for feature A
var b1: Int // This property is for feature B
var b2: Int // This property is for feature B
}
我想知道是否有任何技术可以为MyStruct
创建扩展,以便将a1、a2、a3放入一个组(即aFeatures
),并将b1、b2放入另一个组(bFeatures
)无需更改MyStruct
的原始实现,即可访问如下属性:
let obj = MyStruct()
let a1 = obj.aFeatures.a1
let b1 = obj.bFeatures.b1
提前谢谢
背景故事:MyStruct是在我的应用程序中使用的通用数据模型;但是,对于每个功能/模块(A或B),我只需要使用与该功能相关的某些属性,因此我希望对属性进行分组,以使逻辑更清晰 您可以创建
(Int,Int,Int)
类型的计算属性特征
,类型的特征
(Int,Int)
然后,您可以从a功能
和b功能
let obj = MyStruct()
let a1 = obj.aFeatures.a1
let b1 = obj.bFeatures.b1
为什么不使用不同的结构、基于协议的解决方案或类型擦除的包装器呢?这是已经存在很长时间的遗留代码,我们只希望为我的案例提供一个简单的解决方案
let obj = MyStruct()
let a1 = obj.aFeatures.a1
let b1 = obj.bFeatures.b1