Могу ли я добавить строку в необязательный параметр при вызове указанной функции? - PullRequest
0 голосов
/ 29 сентября 2019

Например, если у меня есть следующая функция

def test(two: 'foo')
  puts two
end

Если я назову ее как test, я получу вывод foo.

Но если я хочу, чтобы вывод был foobar, могу ли я как-то вызвать функцию, такую ​​как test(two + 'bar')?

1 Ответ

0 голосов
/ 29 сентября 2019

Вы можете определить test следующим образом:

def test(two: 'foo', other: '')
  puts two + other
end

Вызов test будет иметь тот же эффект, что и ваша функция, но вызов test(other: 'bar') даст вам желаемый результат:

test
#-> 'food'
test(other: 'bar')
#-> 'foobar'

Вы также можете сделать это

def test(two: '')
  puts 'foo' + two
end

Затем вы можете сделать это (ближе к вашей попытке):

test(two: 'bar')
#-> 'foobar'

Но вы не можете изменить переменные внутриметод извне, просто вызывая их по имени в параметрах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...