Ruby:如何跨多行初始化数组
我有一个小的Ruby脚本,其中一个数组被初始化为包含几个字符串Ruby:如何跨多行初始化数组,ruby,syntax,Ruby,Syntax,我有一个小的Ruby脚本,其中一个数组被初始化为包含几个字符串 MyArray = ["string 1", "string 2" , "string 2" ] 问题是初始化列表中有很多字符串,我想打断这行: MyArray = [ "string 1" ,"string 2" ,"string 2" ] 但是Ruby为这种格式标记了一个语法错误 我试着在每一行的末尾加上“\”但没有成功 如何在Ruby
MyArray = ["string 1", "string 2" , "string 2" ]
问题是初始化列表中有很多字符串,我想打断这行:
MyArray = [
"string 1"
,"string 2"
,"string 2"
]
但是Ruby为这种格式标记了一个语法错误
我试着在每一行的末尾加上“\”但没有成功
如何在Ruby中实现这一点?您需要在项目后面加逗号,如下所示
MyArray = Array.new(
"string 1"
,"string 2"
,"string 2"
)
myarray = [
"string 1",
"string 2",
"string 3"
]
此外,如果您可能考虑在项目之前加逗号,例如在编写代码时加上easy Comment之类的。你可以在那里留下一个挂起的逗号,没有真正的副作用
myarray_comma_ended = [
"test",
"test1",
"test2", # other langs you might have to comment out this comma as well
#"comment this one"
]
myarray_no_comma_end = [
"test",
"test1",
"test2"
]
以多行方式创建阵列的另一种方法是:
myArray = %w(
Lorem
ipsum
dolor
sit
amet
)
+最后一个逗号为1。在添加额外的项时,如果您将其粘贴到IRB(或编辑器并运行它)中,它会带来更好的提交,传统上在ruby 1.9之前,您必须将分隔符(、或.)保留在行的末尾,以使解析器满意。1.9允许您移动。用于将方法链接到下一行,但不使用逗号。请注意%w[]也是以空格分隔的,因此如果“string1”更改为“string 1”,则MyArray将==
[“string”、“1”、“string2”、“string3”]
值得注意的是,可以像这样转义空格:%w(string\1 string\2 string\3)
@dinjas我认为在这一点上我更愿意使用标准数组语法。请记住,这对OP示例不起作用,因为%w
在空间上进行定界,string 1
将导致[“string”,“1”]。您需要使用[]
构造函数。不一定:%w(string\1 string\2 string\3)
myArray = %w(
Lorem
ipsum
dolor
sit
amet
)