113 votes

Qu'est-ce que% i ou% je fais en rubis?

Quel est le sens de% i ou% I en ruby?

J'ai cherché google

 "%i or %I" ruby
 

mais n'a rien trouvé de pertinent pour ruby.

165voto

Stanislav Mekhonoshin Points 2935
 %i[ ] # Non-interpolated Array of symbols, separated by whitespace
%I[ ] # Interpolated Array of symbols, separated by whitespace
 

Le deuxième lien de mes résultats de recherche http://ruby.zigzo.com/2014/08/21/rubys-notation/

Exemples dans la CISR:

 %i[ test ]
# => [:test]
str = "other"
%I[ test_#{str} ]
# => [:test_other] 
 

35voto

Les Nightingill Points 375

Il peut être difficile de trouver l'officiel de la documentation de Ruby (c'est ici). Au moment de la rédaction de la version actuelle est 2.5.1, et la documentation pour l' %je de construire est trouvé dans la documentation de Ruby littéraux.

Il y a quelques surprenant (pour moi du moins!) variantes de Ruby % de construire. Il y a souvent utilisé %i %q %r %s %w %x formes, chacune avec une version en majuscules afin de permettre l'interpolation. (voir le Ruby littéraux docs pour les explications.

Mais vous pouvez utiliser de nombreux types de séparateurs, pas seulement []. Vous pouvez utiliser n'importe quel type de support () {} [] <>, et vous pouvez utiliser (citant le rubis docs) "la plupart des autres caractères non alphanumériques pour cent pour les délimiteurs de chaînes telles que "%", "|", "^", etc."

Donc, %i% bish bash bosh % fonctionne de la même comme %i[bish bash bosh]

17voto

tadman Points 70178

C'est comme %w et %W qui fonctionnent de manière similaire à ' et " :

 x = :test

# %w won't interpolate #{...} style strings, leaving as literal
%w[ #{x} x ]
# => ["\#{x}", "x"]

# %w will interpolate #{...} style strings, converting to string
%W[ #{x} x ]
# => [ "test", "x"]
 

Maintenant la même chose avec %i et %I :

 # %i won't interpolate #{...} style strings, leaving as literal, symbolized
%i[ #{x} x ]
# => [:"\#{x}", :x ]

# %w will interpolate #{...} style strings, converting to symbols
%I[ #{x} x ]
# => [ :test, :x ]
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X