/ / Чи можна передавати невизначену змінну як аргумент дохідності в Ruby? [закритий] - рубін

Чи можна передавати невизначену змінну як аргумент прибутковості в Ruby? [закрито] - рубій

Мені було цікаво, чи можливо щось подібне сказати, що ми маємо

def call_something
yield a
end

де a - невизначена змінна? Чи можливо таке, і якщо так, то можете навести приклад того, як це може бути корисним?

Я знаю, що ви можете передавати аргументи, щоб поступитися, але поки що я знаю, ви можете передавати лише фактичні аргументи, які мають фактичні значення.

Щоб пояснити, я мав на увазі приблизно таке:

class A
def initialize
print "Enter a value: "
@a = gets.chomp
end

def m
yield @a
end
end

a = A.new
a.m do |x|
puts "You entered #{x}"
end

Де ви могли б щось подати, а потім передати блок, використовуючи це "щось" як аргумент.

Відповіді:

1 для відповіді № 1

Навіть якби ви могли, я не впевнений, що це мало б сенс використовувати це значення в переданому блоці вам довелося б призначити його ідентифікатору:

call_something do |arg|
# you want `arg` to be the "unidentified" value
end

На той момент це "не та сама" неідентифікована змінна ", про яку ви говорили раніше, і єдиний спосіб, яким ви насправді можете це представити, - це nil. Тож ти можеш просто пройти nil на першому місці