Why do you use %w[] in rails?
考虑到Rails中的数组是不可知类型,您为什么要使用%w[]?
这是定义字符串数组的最有效方法,因为您不必使用引号和逗号。
1 | %w(abc def xyz) |
而不是
1 | ['abc', 'def', 'xyz'] |
号
重复问题
1 2 | http://stackoverflow.com/questions/1274675/what-does-warray-mean http://stackoverflow.com/questions/5475830/what-is-the-w-thing-in-ruby |
有关更多详细信息,请访问https://simperror.wordpress.com/2009/03/15/q-q-w-w-x-r-s/
以下是Ruby中的百分比字符串类型:
1 2 3 4 5 6 | %w : Array of Strings %i : Array of Symbols %q : String %r : Regular Expression %s : Symbol %x : Backtick (capture subshell result) |
。
举个例子您有一些字符集,可以执行以下段落:
1 | Thanks for contributing an answer to Stack Overflow! |
所以当你尝试
1 | %w(Thanks for contributing an answer to Stack Overflow!) |
。
然后你会得到输出
1 | => ["Thanks","for","contributing","an","answer","to","Stack","Overflow!"] |
。
如果将某些集合或单词用作数组中的单独元素,则应使用让我们举个例子
1 | %w(Thanks for contributing an answer to Stack\ Overflow!) |
输出将是
1 | => ["Thanks","for","contributing","an","answer","to","Stack Overflow!"] |
。
这里Ruby解释器将段落与输入中的空格分开。如果在单词结尾后给出,则它将下一个单词和该单词合并,并作为数组中的字符串类型元素进行推送。
如果可以如下使用
1 | %w[2 4 5 6] |
如果你要用
1 | %w("abc""def") |
。
那么输出将是
1 | => [""abc"",""def""] |
号
%w(abc def xyz)是["abc"、"def"、"xyz"]的快捷方式。也就是说,它是一种表示法,可以编写一个字符串数组,用空格而不是逗号分隔,字符串周围没有引号。