我已經開始學習Rails 3.0,並決定花一些時間學習Pure Ruby 1.9,並想知道是否有辦法查看對象類,因爲它始終可用。像是有一個命令,你可以鍵入IRB例如,將顯示對象類中的所有方法,如to_a,to_s等。感謝您的幫助如何查看對象類中的所有方法/屬性
3
A
回答
9
#methods
是您想要的方法。它只是返回一個字符串數組,它是對象響應的所有方法的名稱。
Object.new.methods
或者在IRB更具可讀性:
puts Object.new.methods.sort.to_yaml
或爲類方法:
Object.methods
一個警告,雖然,有些對象允許不會是方法在此列出。用#method_missing
掛鉤實現的任何內容都不會顯示出來。這包括很多ActiveRecord
方法以及其他rails對象。
但只要沒有棘手的事情發生,這是你似乎想要的列表。
3
要查看對象的方法,可以執行your_object.methods
。對於一個類,這將是它的類方法。要查看課程的實例方法,您可以執行your_class.instance_methods
。因此,要列出Object的所有類方法,您將執行Object.methods
,並且要查看Object的所有實例方法,您應該執行Object.instance_methods
。
更多提示:如果您只想看到給定類實現的方法(不是從它的祖先繼承的方法),則可以將false
作爲參數傳遞給前面提到的任一方法。因此,例如,String.instance_methods(false)
將返回String實現的實例方法列表,但不會返回一般對象方法,如dup
和is_a?
。但是,如果你想學習,查看給定類或類擴展的文檔(例如Rails添加到字符串或日期)可能會更好。
相關問題
- 1. 如何查看動態生成的對象的所有屬性?
- 2. 如何查看給定JS對象的所有屬性?
- 3. 如何查看AD用戶對象的所有屬性?
- 4. 查看所有對象的屬性和值(包括子對象)
- 5. 如何查看R中包的所有方法,對象,dataframse等?
- 6. 如何查看COM對象的所有方法/成員?
- 7. 如何查看對象屬性?
- 8. 查找對象的所有屬性
- 9. 如何在PHP中獲取類的所有非對象屬性?
- 10. 如何查找lua中某個對象的所有屬性?
- 11. PHPTAL:如何轉儲對象可以看到所有屬性
- 12. 如何檢查對象是否具有某些方法/屬性?
- 13. 如何查看Eclipse中所有超類的繼承(Overideable)方法?
- 14. 總結NSSet中所有對象屬性的快速方法?
- 15. 如何遍歷所有對象屬性
- 16. 如何查看對象何時有新屬性
- 17. 如何在Javascript對象中查找隱藏的屬性/方法?
- 18. 如何檢查對象屬性類型?
- 19. 如何獲取類中屬性的所有訪問器方法?
- 20. AngularJS:$觀看數組中的所有對象的屬性
- 21. 讓所有對象屬性
- 22. 如何查看nodejs中的所有屬性(包括繼承的)?
- 23. 查找對象的所有屬性和子屬性
- 24. 如何查看PropertyGrid中的對象屬性?
- 25. 如何查找對Xcode中所有方法或屬性的引用?
- 26. 在Visual Studio 2010中查看VB.NET項目的COM對象的所有屬性debug
- 27. 查看所有按鈕的屬性
- 28. javascript/omniture - 如何清除對象(s對象)的所有屬性
- 29. 如何過濾所有屬性爲對象的對象?
- 30. 如何在Python中檢查對象所具有的方法?
Niggle:''方法'返回一個符號數組,而不是字符串。 – cantlin
在紅寶石1.8.7中,你會得到字符串,這是我最熟悉的。 –
對thanx非常有幫助,認爲沒有人會理解我的問題,謝謝 –