Ruby锐号/数字符号/井号/散列(#)符号的各种含义是什么
符号#
在Ruby语言中有多少个上下文?
我知道#`代表注释
# a comment
或‘转换为值’:
i = 1
print "#{i}" # simple example
然而,我也看到一些Ruby文档描述了这样的内置方法:
Array#fill
File::file?
为什么他们用两个不同的符号来描述同一件事?我是Ruby新手。谢谢
发布于 2013-09-03 20:12:03
在Perl中,#用于注释,因为Perl是Ruby的“祖先”,所以这个角色被继承了下来。
"#{}"
语法被称为“插值”,选择井号的可能性最大,因为插值在某种意义上类似于注释,因为您正在更改代码的上下文(在本例中为另一个执行上下文)。
类名后面的#只是用来表示下面的标识符是这个类的一个方法,它只是一个约定。点击此处了解更多信息:Why are methods in Ruby documentation preceded by a hash sign?
发布于 2013-09-03 20:42:09
::
很有趣,它的作用类似于.
,因为您可以通过这两种方法调用方法
Car::is_hybrid?
和
car.is_hybrid?
但是,正如您将在大多数代码中看到的,对于方法,.
是首选的。
通常首选::
的一种情况是在类中有常量,您将在系统调用(如Math::PI
)或您创建的系统调用(如ThePentagon::NUMBER_OF_BUILDING_SIDES
)中看到这一点
发布于 2013-09-03 20:41:58
仅作为示例,Ruby显示了前面带有符号#
实例方法和前面带有符号.
的类方法。
class Foo
def self.foo;end
def bar;end
end
p Foo.method(:foo) # => #<Method: Foo.foo>
p Foo.new.method(:bar) # => #<Method: Foo#bar>
https://stackoverflow.com/questions/18591938
复制相似问题