有一个长度为4的数组
$ make
2
foo have-foo-1
foo have-foo-2
bar have-bar-1
bar have-bar-2
foo have-foo-3
------------------
have-foo-1 have-foo-2 have-foo-3
------------------
have-bar-1 have-bar-2
代码中除0、1和2以外的任何数字都会导致 不允许通过静态代码检查器投诉MagicNumber。
基本上是这个问题,但对于Kotlin,Java - quick way of assigning array values to individual variables
鉴于束缚,这是怎么写的?我尝试将索引命名为应该执行的静态代码检查器提示,但是说实话这不是很好:
var foo: String? // These variable declarations are out of your control
var foo2: String? // they are part of a bean and an api contract
var foo3: String?
var foo4: String?
var bars: Array<String> = Array(NUMBER_OF_BARS) { "" }
foo = bars[0]
foo2 = bars[1]
foo3 = bars[2]
foo4 = bars[3] // <- Invalid
那没意思
答案 0 :(得分:2)
如果您的数组是bars
,那么Kotlin允许您这样做
var (foo, foo2, foo3, foo4, foo5) = bars
请确保您没有尝试创建比数组包含的变量更多的变量。这将导致异常。如果您不创建新变量,则此方法将行不通。但是好消息是,以上声明基本上只是使用componentN
方法的语法糖,因此您可以直接使用它们。
foo = bars.component1()
foo2 = bars.component2()
foo3 = bars.component3()
foo4 = bars.component4()
比仅使用索引更冗长,但是它将使您的静态代码检查器关闭。