2015-01-30 3 views
0

Может ли кто-нибудь дать мне пример метода, который принимает один строковый аргумент. Хотя я понимаю, что это может показаться тривиальным, я пытаюсь понять, как это работает в рубине. Будет ли синтаксис ниже правильным.Примеры методов с одностроковыми аргументами

Def method("argument") 
    true 
end 
+0

Там на самом деле не такая вещь - объявления методов не содержат никакой информации типа. –

ответ

1

Вам нужно проверить, не является ли она строкой. Вы можете использовать is_a?, чтобы узнать, является ли он String, поскольку Ruby динамически типизирован.

def add_watson(f_name) 
    f_name << " Watson" if f_name.is_a? String 
end 

Теперь, назвав его

puts add_watson("Emma") #=> Emma Watson 
1

Нет, это не так. Прежде всего, ключевое слово def находится внизу. Кроме того, аргумент (ы) метода записывается следующим образом: def my_method(argument), и в этот момент он не проверяет, является ли он строкой, фактически может принимать любой объект, потому что Ruby вводится динамически. Если вы хотите, чтобы заставить String экземпляр в качестве аргумента, вы можете сделать это внутри тела метода:

def my_method(argument) 
    raise ArgumentError, "argument must be a String" unless argument.is_a? String 
    true 
end 
Смежные вопросы