#ruby
#ruby
Вопрос:
Я читаю фрагмент кода следующего вида,
u = account.generate_user
{
id: u.id,
name: u.name
}
Не могли бы вы сообщить мне, что делает приведенный выше фрагмент? Выполняет ли он следующее?
u = account.generate_user
account.id = u.id
account.name = u.name
Есть ли какая-либо ссылка на это использование?
Комментарии:
1. Я думаю, что хэш — это возвращаемое значение метода
2. Отступ вводит в заблуждение. Хэш выглядит как аргумент.
3. также подумал, что это аргумент к
generate_user
первому4. Не могли бы вы предоставить немного больше контекста? Что происходит до и после фрагмента кода?
5. Это злоупотребление пробелами. В данном случае
{...}
— это хэш параметров, а не блок кода.
Ответ №1:
Сначала вы генерируете объект ( u
), а затем возвращаете хэш, причем значения являются вызовами метода для этого объекта.
Выполняет ли он следующее?
u = account.generate_user
account.id = u.id
account.name = u.name
Нет. В хэше вы получаете доступ не к account
атрибутам / методам ( id
и name
), а к только что созданному объекту u
.
Что u
зависит от account.generate_user
возвращаемого значения.