Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在ruby中,什么是以#开头的变量/对象/事物_Ruby_Chef Infra - Fatal编程技术网

在ruby中,什么是以#开头的变量/对象/事物

在ruby中,什么是以#开头的变量/对象/事物,ruby,chef-infra,Ruby,Chef Infra,我是Ruby新手,所以请轻松:) 不管怎么说,我正在努力解决一些问题。特别是有一个对象称为: new_resource.driver.ec2_client 当我对该对象执行检查时,它将返回以下内容: #<Aws::EC2::Client> # 所以,我的问题是:这是什么?在Ruby中,什么样的“东西”以磅符号(散列)开头并包含在其中 非常感谢。这是的默认实现(尽管应该包括对象ID)。在某些情况下,实现您自己的方法可能很有用,因此您可以立即了解您想要了解的有关此对象的内容。#只是

我是Ruby新手,所以请轻松:)

不管怎么说,我正在努力解决一些问题。特别是有一个对象称为:

new_resource.driver.ec2_client
当我对该对象执行检查时,它将返回以下内容:

#<Aws::EC2::Client>
#
所以,我的问题是:这是什么?在Ruby中,什么样的“东西”以磅符号(散列)开头并包含在其中


非常感谢。

这是的默认实现(尽管应该包括对象ID)。在某些情况下,实现您自己的方法可能很有用,因此您可以立即了解您想要了解的有关此对象的内容。
#
只是一个随机字符,在这里没有进一步的含义。

Ruby的inspect方法的输出大致如下,除非您重写它:

"#<#{self.class}:0x#{self.object_id.to_s(16)}"

“#它是复杂ruby对象的默认字符串表示形式,没有更友好的字符串表示形式。在本例中,
Aws::EC2::Client
对象。也许会有帮助。我说“也许”“因为我对chef和Amazon弹性计算云一无所知,但我知道如何使用谷歌。我不知道前导的磅符号,但它通常表示类实例。请准确显示返回的内容,而不是“类似”,这实际上是它返回的内容:#@CarySwoveland Good call。我已经做到了。谢谢。
object_id
必须向左移动1位,输出用零填充,即它更像
sprintf('#',self.class,self.object_id@Stefan,因此是“粗略的”。
 class Foo ; end
 Foo.new.inspect
 #=> "#<Foo:0x007ffe0eeea520>"