簡體   English   中英

在 Ruby 中,如何判斷兩個方法或兩個函數是否相同?

[英]In Ruby, how to tell two methods or two functions are the same?

例如,檢查是否

CGI::parse == CGI.parse

(在做require "cgi" ),怎么做?

CGI.parse不是有效代碼,因為您正在調用該方法(沒有參數,並且該方法需要一個)。

然而,在 ruby​​ 中,(幾乎)一切都是對象——包括方法! (方法是類的實例: Method 。)

您可以通過以下方式訪問CGI::parse方法: CGI.method(:parse)

然后,要檢查兩個方法是否相等,您可以Method類上使用==方法

CGI.method(:parse) == CGI.method(:parse) #=> true

從紅寶石文檔:

如果兩個方法對象綁定到同一個對象並引用同一個方法定義,並且它們的所有者是同一個類或模塊,則它們是相等的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM