你如何确定Integer(string)方法属于哪里?

时间:2016-04-08 03:44:10

标签: ruby

在此代码中:

"1234".to_i

Integer是模块或类的方法吗?我如何查看其文档?

当我编写代码时:

if (/^ *$/.test(value)) {
    //string contains 0+ spaces only
}

我可以在命令shell中使用 ri to_i 来查看方法to_i的内部文档。

2 个答案:

答案 0 :(得分:2)

这是Kernel#Integer方法。您可以在没有明确被调用者的情况下使用的大多数方法(如IntegerArrayputssleep等)属于内核。您可以通过键入ri Kernel#Integer或作为快捷方式ri #Integerri .Integer来查看文档。

答案 1 :(得分:0)

要知道这是一种方法还是常数,你不需要再看到任何东西。

常量(包括类)永远不会参数。因此,如果您看到带有括号的表单

Foo()
Foo(some_argument)

您可以立即告诉它是方法来电。

一个可能与常量不明确的方法需要括号(即使没有参数)。因此,如果您看到表单没有括号

Foo

你可以立刻告诉它是一个常量(比如一个类)。

要说明方法的定义,标准方法是使用owner

method(:Integer).owner # => Kernel