2012-01-11 12 views
148

lubię to dosłowne wyrażenie na tablicy ciągów:Czy istnieje literalna notacja dla tablicy symboli?

%w(i can easily create arrays of words) 

Zastanawiam się, czy nie jest dosłowny, aby uzyskać tablicę symboli. Wiem, że mogę zrobić

ale byłoby tak cudownie po prostu użyć literału.

+0

Takie podejście byłoby ładniejsze niż tylko tworzenie tablicę symbolika? Lub prostą metodą? Meh. –

+0

w tym przypadku, jaki jest sens zapisu '% w'? –

+0

IMO tablica symboli jest mniej zagracona niż tablica ciągów już i ogólnie rzadziej. YMMV. –

Odpowiedz

246

Tak! Jest to możliwe teraz w Ruby 2.0.0. Jednym ze sposobów, aby to napisać to:

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

Można również stosować inne ograniczniki, więc można też napisać %i(foo bar) lub %i!foo bar! na przykład.

Funkcja ta została pierwotnie ogłoszono tutaj:

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

To jest wymienione w oficjalnej dokumentacji Ruby tutaj:

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

+3

dzięki, @ MarcelJackwerth już stwierdził to w komentarzu do poprzedniej zaakceptowanej odpowiedzi, ale przyjmuję twoje dla potomności. –

+3

Należy zauważyć, że podobnie jak w przypadku innych modyfikatorów, możliwe jest użycie szeregu innych ograniczników. na przykład '% i [foo bar]', '% i {foo bar}', '% i! foo bar!', '% i% foo bar%'. – user664833

+1

Jeśli chcesz podświetlić obsługę tego w TextMate lub Sublime Text, sprawdź [mój zmodyfikowany plik .tmLanguage w tym tekście] (https://gist.github.com/kreeger/9584625). –

24

W Ruby 1.x, niestety lista dostępnych %-delimiters jest ograniczona

Modifier Meaning 
%q[ ]  Non-interpolated String (except for \\ \[ and \]) 
%Q[ ]  Interpolated String (default) 
%r[ ]  Interpolated Regexp (flags can appear after the closing delimiter) 
%s[ ]  Non-interpolated Symbol 
%w[ ]  Non-interpolated Array of words, separated by whitespace 
%W[ ]  Interpolated Array of words, separated by whitespace 
%x[ ]  Interpolated shell command 
+0

jest za złe ... dziękuję za link i listę. nie znałem '% x', wydaje się bardziej czytelne niż notki zwrotne używam –

+3

dobrze, nie tak niefortunne dla tych, którzy ledwo utrzymują istniejących w ich głowach (to byłbym ja). – tokland

+26

W Rubim 2.0 otrzymamy% i dla tablic symboli, zobacz: http://www.ruby-lang.org/zh_TW/news/2012/11/02/ruby-2-0-0-preview1-released/ –

Powiązane problemy