О следующем коде на Ruby?

#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 возвращаемого значения.