我希望实现像
这样的东西var a, b, c: MyType = MyType()
但是这行不能编译,因为编译器处理类型注释MyType
仅适用于变量c
因此a
和b
缺少类型注释或初始值类型推断的值。
以下两项都是合法的:
// legal but verbose
var a = MyType()
var b = MyType()
var c = MyType()
// legal but verbose to initialize
var a, b, c: MyType
a = MyType()
b = MyType()
c = MyType()
我能想到的这两种风格都是合法的,但有些冗长,特别是如果有几十种相同类型的变量。
有没有优雅的方法来实现这个目标?
答案 0 :(得分:5)
Swift中的两个选项:逗号或元组。
用逗号分隔的语句:
var a = MyType(), b = MyType(), c = MyType()
使用元组语句:
var (a, b, c) = (MyType(), MyType(), MyType())
另外,但是不鼓励,你可以使用分号在一行上发表多个语句:
var a = MyType(); var b = MyType(); var c = MyType()
答案 1 :(得分:4)
您可以在一个上声明多个常量或多个变量 行,用逗号分隔:
var a = "", b = "", c = ""
请注意
如果代码中的存储值不会改变,请始终声明 它与let关键字一起作为常量。仅使用变量进行存储 需要能够改变的价值。
文档HERE。
在你的情况下:
var a = MyType(), b = MyType(), c = MyType()