gpt4 book ai didi

ruby-on-rails - 试图理解特定的 ruby​​ 语法

转载 作者:数据小太阳 更新时间:2023-10-29 07:02:39 25 4
gpt4 key购买 nike

我是 Ruby 和 Rails 的新手,在浏览各种教程时,我偶尔会遇到一些我无法理解的 Ruby 语法。

例如,这实际上是做什么的?

root to: "welcome#index"

我猜想这可能是一个名为“root”的方法,但在那之后我就迷路了。 “To”不是一个符号,是吗?冒号应该在前面,如果是的话,就像在 ":to"中一样。这是某种形式的使用哈希的关键字参数吗?在使用 ruby​​1.9.3 的 irb 中尝试时,我无法使此语法起作用。

我知道这可能是一个 RTFM 问题,但我什至想不出要用谷歌搜索什么。

谢谢!

我还在研究这个语法,

def func(h)
puts h[:to]
end

x = { :to => "welcome#index" }
y = :to => "welcome#index"
z = to: "welcome#index"

func to: "welcome#index"

我看到这个例子只适用于定义“y”和“z”的行被注释掉了。那么无括号和“后冒号”语法仅在调用方法的上下文中有效?

最佳答案

首先,没错 - root 是一个方法调用。现在

to: 'welcome#index' 

相当于

:to => 'welcome#index'

它是一个 Hash,其中键是 :to 符号,值是 'welcome#index' 字符串。从 Ruby 1.9 开始,您可以使用此语法定义哈希。

关于ruby-on-rails - 试图理解特定的 ruby​​ 语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17477028/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com