我有以下内容
class test
hash={}
def printHash
puts hash[1]
puts hash[2]
puts hash[3]
end
end
test.new.printHash
Run Code Online (Sandbox Code Playgroud)
这打印:
1
0
1
Run Code Online (Sandbox Code Playgroud)
为什么会这样?如何测试我是否在哈希的那个位置放了一些东西?或者我错过了什么
Pes*_*sto 10
你已经离开了标记,但它似乎正在做某事,因为它hash是一个内置函数,它返回对象的Fixnum哈希码.在Fixnum上使用方括号时,您将获得特定位的值.你想要做的是创建一个以sigil开头的实例变量@.此外,您必须在方法中创建实例变量,因此我们将使用在创建类的对象时调用的变量initialize:
class Test
def initialize
@hash = {}
end
def printHash
puts @hash[1]
puts @hash[2]
puts @hash[3]
end
end
Run Code Online (Sandbox Code Playgroud)
现在你可以找到这nil三种打印件.要测试散列是否具有特定键的值,您可以使用has_key?.
| 归档时间: |
|
| 查看次数: |
254 次 |
| 最近记录: |