2015-02-20 3 views
1

В .Net есть один вариант для нулевых значений, например a = a ?? "" + "some string value" Это означает, что если a имеет значение null, выберите «" this. Я хочу знать, есть такая вещь в рубине.Обработка Nil In Ruby

+0

Можете ли вы объяснить этот код? 'a = a ?? "" + "некоторое строковое значение" '. Это сбивает с толку .. с тем, что вы сказали _This означает, что если a null принимает значение как "" _. –

+0

, если a = null, тогда, когда я делаю конкатенацию, он выдает ошибку. Чтобы предотвратить ошибку, мы должны ее обработать. так что если вы используете ?? этот оператор в .Net вы можете присвоить значение по умолчанию, например a ?? "" или «строка по умолчанию» все, что вы хотите – Vijay

ответ

1

Если вы хотите предварять/добавить его в строку, лучше всего сделать это:

a.to_s + "some string value" 

Это будет автоматически обрабатывать даже nil значения.

a = nil 
a.to_s 
# => "" 
5

В Ruby, вы можете сделать:

a ||= '' 

это означает, что если a является nil или false, пустая строка будет присвоено. Обратите внимание, что это выражение, которое возвращает конечное значение a.

+0

Да, это то, что у нас есть в Ruby. –

1

В Ruby, если объект может быть преобразован в строку, мы можем сделать как "#{nil} some string value"

Здесь он принимает nil (или какое-то значение) в виде строки.

+0

Это лучше. Вот как я это сделаю. –