swift - Swift 协议在同一行声明多个属性
问题描述
我有一个包含许多共享相同类型和访问器的属性的协议。我想将它们全部声明在同一行,就像使用 Struct 一样,以节省多行垂直代码空间。
是否有任何 Swift 语法可以在单行上或以某种压缩格式声明具有多个相同类型属性的协议?
struct SomeStruct {
var structA, structB: Int // ok
}
protocol SomeProtocol {
var protoA: Int { get } // ok
var protoB, protoC: Int { get } // error
var protoD, protoE: Int // error
// ok, but too verbose
var protoF: Int { get }; var protoG: Int { get }
}
尝试在同一行声明多个变量会导致两个错误:
具有多个变量的“var”声明不能有明确的 getter/setter
具有隐含类型的变量不能具有隐含的 getter/setter
如果我省略了 getter/setter,则该属性对协议不再有效:
协议中的属性必须有明确的 { get } 或 { get set } 说明符
有没有办法将相同的{ get }
应用于多个协议属性?
解决方案
推荐阅读
- java - MapStruct 不使用 Spring-boot 测试 Gradle Junit5 自动编译
- jquery - 如何将数组中的html元素与每个循环中的html元素匹配
- python - 如何以相同的方式订购图像文件和分类标签?
- hbase - HBase CoProcessor 可以扫描整个表吗?
- apache-kafka - 如何在特定环境中不消费消息?
- excel - 编译器上显示的输出与预期值不同。但是将此值复制粘贴到 Excel 时会获得正确的值
- google-cloud-dataflow - 从 dataflow sdk 切换到 beam sdk 导致 URN 查找异常
- flutter - 如何在 Appbar 之外制作导航抽屉?
- rust - 为什么在将使用 Diesel 特征的函数重写为特征方法时会出现“溢出评估需求”?
- vhdl - 旧板 Virtex 5 参考设计 ML510 和 ML507 的代码