Ruby中表达式右侧的逗号字符是什么

Hai*_*iri 2 ruby

请问这个基本问题,但我在Google上找不到答案。我是Ruby的新手,遇到过以下代码行:

self.primary_keys = :role_id, :action_name
Run Code Online (Sandbox Code Playgroud)

我从中了解到的self.primary_keys是一个Class变量,并被分配了一个数组或符号哈希?表达式(:role_id, :action_name)的右侧是什么意思?它是什么类型?

Ste*_*zyn 5

它是两个用逗号隔开的符号,是一个隐式数组。

相当于

self.primary_keys = [:role_id, :action_name]
Run Code Online (Sandbox Code Playgroud)

看到作业左侧使用的技术更为常见。

name, age = ["George", 21]

puts name
=> "George"

puts age
=> 21
Run Code Online (Sandbox Code Playgroud)

该功能使您可以交换变量的内容而无需中间变量。

例如,在某些语言中要交换ab您需要一个临时变量

temporary = a
a = b
b = temporary
Run Code Online (Sandbox Code Playgroud)

在Ruby中,您可以

a, b = b, a
Run Code Online (Sandbox Code Playgroud)