簡體   English   中英

什么時候通過 Kotlin 中的 function 類型有利?

[英]When is beneficial to pass function type in Kotlin?

private fun createData(
index: Int,
address: () -> Address)

這是方法調用

createData(0){Address(...)}

或者我可以保持簡單,而我可以擁有

private fun createData(
index: Int,
address  -> Address)

我將調用簡單的方法 createData(0,Address(...)) 我只是想知道在這種情況下使用 function 類型有什么好處嗎?

您展示的場景是 function 采用“工廠”作為參數。 如果您只打算立即調用 function 一次,那么沒有理由不直接使用 Address 參數。

但是假設創建地址是一個 CPU 密集型過程,您可能直到以后才需要它,如果有的話。 然后您可以保留 function 並僅在以后確實需要時使用它。

或者假設您想使用某種輸入參數創建一堆地址。 然后,您可能需要使用(Int) -> Address之類的參數,並使用不同的參數多次調用它。

或者假設這個 function 需要一定數量的地址副本,而地址沒有副本 function。 然后你可以一遍又一遍地調用 function 來獲取副本。

高階函數還有許多其他用途。 我只是舉幾個工廠使用它們的例子,因為那是你問的那種例子。 但是有幾個更普遍的用途:

  • 如果 function 應該對多個對象執行操作,並且您希望調用者能夠傳遞該操作是什么。
  • 代替接口,您可以使用 function 參數為傳遞給它的內容提供更大的靈活性(lambda,定義的 function,或

暫無
暫無

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

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