Ruby 这个和这个有什么区别?

Ruby 这个和这个有什么区别?,ruby,Ruby,在某物的开头和结尾使用冒号表示什么?我认为请求某物时的冒号(例如,:set\u cart)表示一种方法。这是正确的吗?以下是几个例子: <%= button_to "Checkout", new_order_path, method: :get %> <%= button_to "Empty Cart", @cart, method: :delete, data: {confirm: 'Are you sure?' } %> 这是Ruby 1.9中引入的索引哈希

在某物的开头和结尾使用冒号表示什么?我认为请求某物时的冒号(例如,
:set\u cart
)表示一种方法。这是正确的吗?以下是几个例子:

<%= button_to "Checkout", new_order_path, method: :get %>
<%= button_to "Empty Cart", @cart, method: :delete,
    data: {confirm: 'Are you sure?' } %>

这是Ruby 1.9中引入的索引哈希的新语法

> hash = { key: 'val' }
=> {:key=>"val"}
现在可以编写
{key:'value'}
而不是旧的
{key:'value'}
。实际上,散列是完全相同的,所以它实际上只是一个符号变化

2.0.0p247 :001 > { key: 'value' }
 => {:key=>"value"}

在您的示例中,method::delete只是另一种书写方式:method=>:delete。

某物开头的冒号表示Ruby对象

某物结尾的冒号表示Ruby对象中的符号键。这种新的哈希语法是在Ruby 1.9中引入的

> hash = { key: 'val' }
=> {:key=>"val"}
当它们按预期一起使用时,它会创建一个哈希对,其中的键和值都是符号

> { key: :val }
=> {:key => :val}

此外,OP的示例代码使用了方法调用约定,即在方法调用结束时找到的散列键/值语法被汇总成单个
散列
参数。这是一个符号,如果您想了解更多,在internet上有大量关于此的资源,但您可以查看该帖子,例如::)@Sparda“这是一个符号”如果你不指定你指的是
:这是
而不是
这:
@andrewgrim就我所知,没有散列和东西的微妙之处,它们都是符号。。。
> { key: :val }
=> {:key => :val}