Ruby 在rails集合中放置带空格的枚举
最后,我希望t.size的值是3Ruby 在rails集合中放置带空格的枚举,ruby,Ruby,最后,我希望t.size的值是3 正如建议的那样,每个空间都必须逃逸……这是一项艰巨的工作。还有什么其他选择?我有一个大约30个单词的列表,我需要把它们放在一个集合中,因为我使用simple\u表单将它们显示为复选框 irb(main):001:0> t = %w{this is a test} => ["this", "is", "a", "test"] irb(main):002:0> t.size => 4 irb(main):003:0> t = %w{"t
正如建议的那样,每个空间都必须逃逸……这是一项艰巨的工作。还有什么其他选择?我有一个大约30个单词的列表,我需要把它们放在一个集合中,因为我使用
simple\u表单将它们显示为复选框
irb(main):001:0> t = %w{this is a test}
=> ["this", "is", "a", "test"]
irb(main):002:0> t.size
=> 4
irb(main):003:0> t = %w{"this is" a test}
=> ["\"this", "is\"", "a", "test"]
irb(main):004:0> t.size
=> 4
使用\
逃离空间:
irb(main):001:0> t = %w{this is a test}
=> ["this", "is", "a", "test"]
irb(main):002:0> t.size
=> 4
irb(main):003:0> t = %w{"this is" a test}
=> ["\"this", "is\"", "a", "test"]
irb(main):004:0> t.size
=> 4
您可以转义空间%w{this\is a test}
以获得['this is','a','test']
,但通常我不会使用%w
,除非这样做的目的是在空格上拆分。您可以转义空间%w{this\is a test}
以获得['this is','a','test code>,但一般来说,我不会使用%w
,除非这样做的目的是在空格上分割。你需要用一个“\”来转义空格,比如t=%w{这是一个测试}
如果你不想让那个空格成为一个拆分器。你需要用一个“\”来转义空格,比如t=%w{这是一个测试}
如果您不希望该空格成为拆分器。正如其他人所指出的,当空格是单词的分隔符时,使用%w{}
构造。如果您有必须引用的项目,并且仍然希望使用构造,则可以执行以下操作:
%w{this\ is a test}
t = [
'this is',
'a',
'test'
]
正如其他人指出的,当空格是单词的分隔符时,使用%w{}
结构。如果您有必须引用的项目,并且仍然希望使用构造,则可以执行以下操作:
%w{this\ is a test}
为什么不直接使用普通数组,这样就不必直观地解析所有转义来找出发生了什么?这很清楚:
> %w{a test here}.unshift("This is")
=> ["This is", "a", "test", "here"]
维护你的代码的人不会因为你在不合适的时候使用%w{}
而讨厌你,或者因为他们看不到你的转义空格而把事情搞砸了。为什么不使用普通数组,这样就没有人需要直观地解析所有转义来找出发生了什么?这很清楚:
> %w{a test here}.unshift("This is")
=> ["This is", "a", "test", "here"]
t = [
'this is',
'a',
'test'
]
维护你的代码的人不会因为你使用了%w{}
而讨厌你,因为它不合适,或者因为他们没有看到你的转义空格而把事情搞砸了。我有一大堆单词要收集。有更好的方法吗?为什么不使用数组或文本文件来代替标题呢?我想收集大量的单词。有更好的方法吗?为什么不使用数组或文本文件,而不是其他的例子呢?在你不想被拆分的地方,它们是双引号吗?可能有比使用%w{}
更好的方法,为了帮助您,我们需要了解一般模式。坚持使用%w{}
操作符之类的东西,然后在有其他更好的方法时试图愚弄它,这是糟糕的编程设计。试图强迫%w{}
去做它不是设计用来做的事情的最终结果是在维护代码时造成混乱。你还有什么其他的例子吗?在你不想被拆分的地方,它们是双引号吗?可能有比使用%w{}
更好的方法,为了帮助您,我们需要了解一般模式。坚持使用%w{}
操作符之类的东西,然后在有其他更好的方法时试图愚弄它,这是糟糕的编程设计。试图强迫%w{}
去做它不打算做的事情的最终结果是在维护代码时造成混乱。
t = [
'this is',
'a',
'test'
]