比較Lambda:實作與解釋
問題:
問題:給定一個物件列表使用給定一個物件列表使用lambda 表達式定義,是否可以檢查和比較它們是否相等?
實現注意事項:從實現角度來看,非捕獲 lambda 的計算結果相同捕獲站點生成相同的實例,可以使用引用相等性進行比較。然而,在不同站點捕獲的不同 lambda 表達式可能會映射到不同的合成類別。
規範意義:語言規範僅保證計算 lambda 表達式的結果是目標函數介面的實例。它不指定結果的身份或別名。這種靈活性允許實現透過不為每個 lambda 求值創建唯一實例來優化效能。
方法引用相等性:方法引用可以提供調整定義的實際場景支持作為聽眾使用的平等。未來的修訂正在考慮這一點。
深入評估:確定兩個lambda 的相等性需要比較它們的行為函數、捕獲的參數以及它們的功能接口被轉換為.然而,獲取不可序列化lambda 的此資訊可能具有挑戰性。
設計決策:Java 專家小組的結論是,公開 lambda 相等性比較的資訊是不值得的大多數使用者的效能損失。然而,改進 toString() 表示的可行性仍有待未來討論。以上是Java 中的 Lambda 表達式是否相等?的詳細內容。更多資訊請關注PHP中文網其他相關文章!