con*_*com 57 ruby syntax language-implementation
在Ruby 2.0.0-p0中,__dir__引入了变量以便于访问当前正在执行的文件的目录.
为什么__dir__大写时__FILE__是小写的?
Tod*_*obs 31
语言实现选择的相对优点超出了合理的Stack Overflow问题的范围.但是,这是一个很好的问题,因为它确定了语言中可能令人困惑的用例,并试图澄清两种语言元素之间的区别.
__FILE__ 是关键字在Ruby 1.9中,__FILE__是一个关键字.尽管它看起来像是在Object类上定义的方法,但Object #__ FILE__的源代码却是:
# File keywords.rb, line 68
def __FILE__
end
Run Code Online (Sandbox Code Playgroud)
在2.0.0-p0中快速扫描源并没有找到keywords.rb文件,但是假设在__FILE__语法上仍然是关键字.也许其他人可以指出您当前定义的位置.
__dir__ 是一种方法内核#__ dir__实际上是一种方法.您可以通过使用内核定义的方法来自己看到这个:
Kernel.methods.grep /__dir__/
# => [:__dir__]
Run Code Online (Sandbox Code Playgroud)
在一个bug和一些与bug相关的评论中,调用了__FILE__关键字和(某种)方法的事实.还讨论了Ruby-Core论坛中命名约定的各种优缺点.
虽然答案可能有点令人不满意,但这是目前的状况.如果这是一个你强烈关注的语言设计问题,那么参与Ruby核心团队将是解决它的正确方法.
| 归档时间: |
|
| 查看次数: |
10521 次 |
| 最近记录: |