Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby中表达式右侧的逗号字符是什么意思_Ruby - Fatal编程技术网

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

Ruby中表达式右侧的逗号字符是什么意思,ruby,Ruby,请原谅这个基本问题,但是我在谷歌上找不到答案。 我是Ruby新手,接触到以下代码行: self.primary_keys = :role_id, :action_name 我从中了解到,self.primary\u keys是一个类变量,并被分配了一个数组或符号散列? 表达式的右侧(:role\u id,:action\u name)是什么意思? 它是什么类型的?它是由逗号分隔的两个符号,是一个隐式数组 相当于 self.primary_keys = [:role_id, :action_na

请原谅这个基本问题,但是我在谷歌上找不到答案。 我是Ruby新手,接触到以下代码行:

self.primary_keys = :role_id, :action_name
我从中了解到,
self.primary\u keys
是一个类变量,并被分配了一个数组或符号散列? 表达式的右侧(
:role\u id,:action\u name
)是什么意思?
它是什么类型的?

它是由逗号分隔的两个符号,是一个隐式数组

相当于

self.primary_keys = [:role_id, :action_name]
更常见的是在作业的左侧看到使用的技巧

name, age = ["George", 21]

puts name
=> "George"

puts age
=> 21
该功能允许在不使用中间变量的情况下交换变量的内容

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

temporary = a
a = b
b = temporary
在Ruby中,您可以

a, b = b, a
这是作业

x、 y=[“Srini”,25]

放x =>“Srini”

放在
=>25

这看起来像是哈希键的并行分配。有关详细信息,请参阅文档。它写得很好,涵盖了很多情况。事实上,整个文件都值得仔细研究。一个诡辩:
put y
显示字符串
y.to_s
,这就是为什么你应该只写,
x#=>“Srini”;y#=>25