1. ホーム
  2. ruby

[解決済み] 記号の配列のリテラル表記はありますか?

2022-04-21 19:47:27

質問

文字列の配列に対するこのリテラル式が好きです。

%w( i can easily create arrays of words )

シンボルの配列を得るためのリテラルがあるかどうか、疑問に思っています。私はそれができることを知っています。

%w( it is less elegant to create arrays of symbols ).map( &:to_sym )

が、リテラルを使うだけでもとても素晴らしいことです。

どのように解決するのですか?

はい、そうです。 Ruby 2.0.0では、これが可能になりました。 一つの書き方としては

%i{foo bar}  # => [:foo, :bar]

他のデリミタも使用できるので、次のように記述することもできます。 %i(foo bar) または %i!foo bar! を例にとります。

この機能は、もともとここで発表されたものです。

http://www.ruby-lang.org/zh_TW/news/2012/11/02/ruby-2-0-0-preview1-released/

こちらのRubyの公式ドキュメントに記載されています。

http://ruby-doc.org/core/doc/syntax/literals_rdoc.html#label-Percent+Strings