强制标量或数组变为数组

Ken*_*ber 11 ruby

有时我希望变量始终是一个数组,无论是标量还是数组.

所以我通常这样做:

[variable].flatten
Run Code Online (Sandbox Code Playgroud)

与ruby-1.8.5,1.8.7,1.9.x兼容.

有了这个方法,什么时候variable是一个string(variable = "asdf"),它给了我["asdf"].如果它已经是一个数组(variable = ["asdf","bvcx"]),它给了我:["asdf","bvcx"].

有没有人有更好的方法?"更好"意味着在其他方面更具可读性,更高性能,更简洁或更有效.

luc*_*tte 16

Array(variable)
Run Code Online (Sandbox Code Playgroud)

应该做的伎俩.它使用鲜为人知的Kernel#Array方法.


saw*_*awa 14

我这样做,并且认为是标准方式,正在使用[*...]:

variable1 = "string"
variable2 = ["element1", "element2"]

[*variable1] #=> ["string"]
[*variable2] #=> ["element1", "element2"]
Run Code Online (Sandbox Code Playgroud)