2017/10/19
Ruby - debug 方法
markdown
## 查詢繼承關係
```
File.ancestors
# [File, IO, File::Constants, Enumerable, Object, Kernel, BasicObject]
```
## 從物件找方法
```
# 查 File 的類別方法
File.methods
# 查 File 的實體方法
File.instance_methods
# 查 File 的實體方法
File.new('/').methods
# 取得繼承樹上所有的方法
File.methods(true)
# 只取得屬於 File 的方法
File.methods(false)
```
## 從方法找定義
```
File.method(:read)
# #Method: File(IO).read
IO.method(:read)
# #Method: IO.read
IO.method(:read).source_location
# nil
```
因為 IO.read 的定義是寫在 c 語言,所以就不顯示了。
## 參考文件
為什麼File.method(:read)是nil:[https://ja.stackoverflow.com/questions/5755/ruby-file-read-%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89%E3%81%AE%E8%AA%AC%E6%98%8E%E3%82%92api%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88%E3%81%A7%E8%AA%BF%E3%81%B9%E3%81%9F%E3%81%84](https://ja.stackoverflow.com/questions/5755/ruby-file-read-%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89%E3%81%AE%E8%AA%AC%E6%98%8E%E3%82%92api%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88%E3%81%A7%E8%AA%BF%E3%81%B9%E3%81%9F%E3%81%84)
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言