我是 Ruby 的新手,正在尝试了解它的一些语法。
为什么这段代码使用异常对象的变量:
begin
puts Dir::delete
rescue ArgumentError => e
puts e.backtrace
end
但没有符号?
begin
puts Dir::delete
rescue ArgumentError => :e
puts e.backtrace
end
最佳答案
符号是一个值。在您的示例中,您需要一个变量来存储错误对象。您通常使用符号作为字符串常量。
例如,如果您创建一个带有基本方向的模块,最好使用符号 :north
、:south
、:east
, :west
而不是字符串 "north"
, "south"
, "east"
和 “西”
。
符号通常用作散列中的键:
my_hash = { a: 1, b: 7, e: 115 }
阅读 github 上的 ruby 代码对于了解何时使用符号非常有用。
关于ruby-on-rails - 在 Ruby 中什么时候使用符号代替变量是正确的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10561541/