为什么要使用%w[],既然Rails中的数组是类型不可知的呢?
这是定义字符串数组最高效的方法,因为您不需要使用引号和逗号。
%w(abc def xyz)
与其
['abc', 'def', 'xyz']
重复问题
https://dev59.com/YHM_5IYBdhLWcg3wrFMt
https://dev59.com/ym035IYBdhLWcg3wW-la
如果您需要更多详细信息,可以访问https://simpleror.wordpress.com/2009/03/15/q-q-w-w-x-r-s/
以下是Ruby中的百分数字符串类型:
%w : Array of Strings
%i : Array of Symbols
%q : String
%r : Regular Expression
%s : Symbol
%x : Backtick (capture subshell result)
让我们举个例子,假设你有一些字符集合,它们组成了一个段落,例如:
Thanks for contributing an answer to Stack Overflow!
%w(Thanks for contributing an answer to Stack Overflow!)
=> ["Thanks", "for", "contributing", "an", "answer", "to", "Stack", "Overflow!"]
如果您想将某些集合或单词作为数组中的单独元素使用,那么您需要使用\转义符。让我们举个例子。
%w(Thanks for contributing an answer to Stack\ Overflow!)
=> ["Thanks", "for", "contributing", "an", "answer", "to", "Stack Overflow!"]
这里的 Ruby 解释器会根据输入中空格将段落分隔开来。如果你在单词结尾处加上 \,它会将下一个单词与该单词合并,并将其作为字符串类型元素推送到数组中。
可以像下面这样使用:
%w[2 4 5 6]
标签
,请注意以下几点:%w("abc" "def")
=> ["\"abc\"", "\"def\""]
%w(abc def xyz)是["abc", "def","xyz"]的一种简写方式。这意味着它是一种标记,用于编写由空格分隔的字符串数组,而不是用逗号分隔,并且不需要在它们周围加上引号。