'%i'表示法的起源是什么?

fny*_*fny 4 ruby syntax

Ruby经典地支持以下文字:

%q[quack quack] #=> "quack quack"
%r[quack quack] #=> /quack quack/
%w[quack quack] #=> ["quack", "quack"]
%x[echo quack quack] #=> "quack quack\n"
Run Code Online (Sandbox Code Playgroud)

我对它们起源的理解如下:

  • %q[]适用于q uotes
  • %r[]- [R egex
  • %w[]是为了w ords
  • %x[]是电子X ecute

Ruby 2.0引入了%i符号:

%i[quack quack] #=> [:quack, :quack]
Run Code Online (Sandbox Code Playgroud)

为什么i

Ale*_*yne 9

它可能是对该方法的参考String#intern用于从字符串中获取符号.

"foo".intern #=> :foo
Run Code Online (Sandbox Code Playgroud)