【发布时间】:2018-06-08 01:00:35
【问题描述】:
在带有哈希的 ruby 中使用 => 似乎很简单:
a = {key1: => value1, key2: => value2}
b = {"key1" => value1, "key2" => value2}
Ruby 大量使用了语法糖。这是一个示例代码块
begin
[some code]
rescue Exception => e
[some error handling code]
end
救援行中到底发生了什么,特别是在Exception 和变量e 之间以及=> 之间? rescue 是保留关键字,e 显然是变量。其余的部分?这种情况下=>的作用是什么?
更新 每个人似乎都没有抓住重点。我知道“救援异常=> e”与哈希无关。我想从语法上知道那行发生了什么。
“rescue”一词是关键字保留字,是 ruby 语言的一部分。我很确定“e”是一个变量,在功能上也可以是“a”、“b”或“c”。什么是“异常”和“=>”?有没有另一种方法来编写这个表达式,让像我这样的人更容易理解它,这些人对语法严格且没有语法糖的语言进行了编程?
【问题讨论】:
-
{ key1: "cat" }是{ :key1 => "cat" }的简写,但{ key1: => "cat" }的语法不正确。有时你会看到{ "key1": "cat" }。与{ key1: "cat" }相同,但包含空格的符号必须加引号,所以{:"key 1" => "cat}的简写形式为{ "key 1": "cat" }(需要加引号)。 -
所以我认为每个人都错过了我的问题的要点。我不太关心救援的细微差别,只把代码放在那里,因为它有一个我希望完全理解的句法结构的例子。有关更多详细信息,请参阅上面的更新。
-
我之前的评论是正确的,但不完整,因为必须引用的符号绝不限于包含空格的符号。见this SO question。