"和 "@variable"、 "@@variable"和 ":variable"有什么区别?-6ren"> "和 "@variable"、 "@@variable"和 ":variable"有什么区别?-我知道这些是 Rails 的基础知识,但我仍然不知道 = 符号和 => 之间的全部区别以及 @some_variable 之间的区别、@@some_variable 和 :some_variable -6ren">
gpt4 book ai didi

ruby-on-rails - ruby 中的 "="& "=>"和 "@variable"、 "@@variable"和 ":variable"有什么区别?

转载 作者:数据小太阳 更新时间:2023-10-29 06:47:36 27 4
gpt4 key购买 nike

我知道这些是 Rails 的基础知识,但我仍然不知道 = 符号和 => 之间的全部区别以及 @some_variable 之间的区别@@some_variable:some_variable 在 rails 中。

谢谢。

最佳答案

好的。

=之间的区别和 => operators 是,第一个是赋值,第二个表示哈希(关联数组)中的关联。所以{ :key => 'val' }是说“创建一个关联数组,:key 是键,'val' 是值”。如果您想听起来像一个 Rubyist,我们称之为“hashrocket”。 (信不信由你,这不是 Ruby 中最奇怪的运算符;我们还有 <=> 或“宇宙飞船运算符”。)

您可能会感到困惑,因为您可以在方法中使用一些快捷方式,如果最后一个参数是哈希值,您可以省略波浪形括号 ( {} )。所以叫render :partial => 'foo'基本上是调用 render 方法,传入带有单个键/值对的哈希。正因为如此,您经常看到哈希作为最后一个参数,有点像穷人的可选参数(您在 JavaScript 中也看到了类似的做法)。

在 Ruby 中,任何普通的单词都是局部变量。所以foo方法内部是一个范围为方法级别的变量。在变量前加上 @表示将变量范围限定为实例。所以@foo在方法中是实例级别。

@@表示一个类变量,意思是@@变量在类和所有实例的范围内。

:意味着符号。 Ruby 中的符号是一种特殊的字符串,表示它将用作键。如果您来自 C#/Java,它们在使用上类似于枚举的关键部分。也有一些其他差异,但基本上任何时候您要将字符串视为任何类型的键,您都可以使用符号。

关于ruby-on-rails - ruby 中的 "="& "=>"和 "@variable"、 "@@variable"和 ":variable"有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3538575/

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