Как использовать константы в %w в Ruby?

#arrays #ruby #string

Вопрос:

Мне нравится иметь

 C1 = 'V1'.freeze
C2 = 'V2'.freeze
 

стать

 [ 'V1', 'V2' ]
 

Когда я использую

 %w(V1 V2)
 

Я получаю

 [ 'V1', 'V2' ]
 

А также когда я использую

 %w("#{C1}" "#{C2}")
 

Однако мне интересно, есть ли что-то более простое в использовании констант, но без #{...} них .

Пример кода:

 C1 = "vC1".freeze
C2 = "vC2".freeze

puts '-----------a----------'
a  = %w(D1 D2)
puts a.class
puts a

puts '-----------b----------'
b = ["#{C1}", "#{C2}"]
puts b.class
puts b

puts '-----------c----------'
c = %w(C1 C2)
puts c.class
puts c
 

Результат:

 -----------a----------
Array
D1
D2
-----------b----------
Array
vC1
vC2
-----------c----------
Array
C1
C2
 

Ответ №1:

Ответ довольно прост:

 [C1, C2]
 

эквивалентно:

 [ 'V1', 'V2' ]