这可能是您在编程101中学到的.
免责声明:我没有正式的编程培训.我是自学成才的.
对我来说,文字哈希就像这个网站建议的:第三个可编辑的哈希称为"corned beef hash".
在Ruby中,您有两种数据类型:
为什么一个人称为文字?是因为你真的输入了关联数组吗?上述网站声称这是因为定义是内联的.如果是这样,为什么当你可以像这样输入哈希时,哈希也不会被称为文字:
states = Hash.new
states["CA"] = "California"
states["MA"] = "Massachusetts"
states["NY"] = "New York"
states["MA"].reverse #=> "sttesuhcassaM"
Run Code Online (Sandbox Code Playgroud)
Urs*_*sus 15
数据类型只有一个:Hash.Hash是一个班级.您可以实例化对象并使用它们
h = Hash.new
h.store("CA", "California")
h["MA"] = "Massachusetts"
Run Code Online (Sandbox Code Playgroud)
文字只是一种快捷方式,允许您在不明确使用该类的情况下创建该类的对象.
h = { "CA" => "California", "MA" => "Massachusetts" }
Run Code Online (Sandbox Code Playgroud)
同样Array的
a = Array.new
a.push(1)
a << 2
Run Code Online (Sandbox Code Playgroud)
或者,用array文字
a = [1, 2]
Run Code Online (Sandbox Code Playgroud)
您的困惑源于这种误解:
在 Ruby 中,您有两种数据类型:
- 散列
- 散列文字
首先,Ruby 核心中有更多的数据结构。
但其次,没有“文字哈希”这样的东西。散列文字是指用于在适当位置定义散列的语法糖,也就是字面意思。
# This is a hash literal
x = {foo: 42, bar: :baz}
# This is not a hash literal
x = Hash.new
x[:foo] = 42
x[:bar] = :baz
Run Code Online (Sandbox Code Playgroud)
它们完全相同。唯一的区别是一个更方便,而另一个更动态。
| 归档时间: |
|
| 查看次数: |
3061 次 |
| 最近记录: |