Podoba mi się to dosłowne wyrażenie dla tablicy ciągów:
%w( i can easily create arrays of words )
Zastanawiam się, czy istnieje literał, który pozwala uzyskać tablicę symboli. Wiem, że potrafię
%w( it is less elegant to create arrays of symbols ).map( &:to_sym )
ale byłoby wspaniale użyć tylko literału.
%w
zapisie?Odpowiedzi:
Tak! Jest to teraz możliwe w Rubim 2.0.0. Można to napisać tak:
Możesz także użyć innych separatorów, więc możesz również napisać
%i(foo bar)
lub%i!foo bar!
na przykład.Ta funkcja została pierwotnie ogłoszona tutaj:
http://www.ruby-lang.org/zh_TW/news/2012/11/02/ruby-2-0-0-preview1-released/
Jest to wymienione w oficjalnej dokumentacji Rubiego tutaj:
http://ruby-doc.org/core/doc/syntax/literals_rdoc.html#label-Percent+Strings
źródło
%i[foo bar]
,%i{foo bar}
,%i!foo bar!
,%i%foo bar%
.%i[foo bar]
Niestety w Ruby 1.x lista dostępnych % -delimiterów jest ograniczona
źródło
%x
, wydaje się bardziej czytelny niż notacja odwróconych znaków, której używam