2016-10-20 37 views
-4

我讀了一段代碼如下,關於Ruby中的以下代碼?

u = account.generate_user 
    { 
     id: u.id, 
     name: u.name 
    } 

你能不能讓我知道什麼上面的代碼片段呢?它是否執行以下操作?

u = account.generate_user 
account.id = u.id 
account.name = u.name 

這裏有沒有提及這種用法?

+0

我認爲哈希值是方法的返回值 –

+0

縮進很容易讓人誤解。哈希看起來像一個參數。 – Stefan

+0

也認爲它是第一個參數'generate_user' –

回答

1

您首先生成一個對象(u),然後返回一個散列,其中的值是該對象上的方法調用。

它執行以下操作嗎?

u = account.generate_user account.id = u.id account.name = u.name

都能跟得上。在散列中,您沒有訪問account的屬性/方法(idname),而是訪問新創建的對象u

什麼是u取決於account.generate_user的返回值。