假設函數foo
應該通過將某些工作委託給作爲參數傳遞的某個其他函數來計算輸入值T
上的某個返回值R
。有關Scala函數中參數集順序的規則和慣例
例如,我們可以把它定義爲這樣的:
def foo(data: List[T], delegate: T => R): List[R]
但是,如果我想重用要麼我與數據功能,或委託,我不能,所以我可以將它們劃分爲單獨的參數集,像這樣:
def foo(data: List[T])(delegate: T => R): List[R]
但是,現在出現了一個問題。那是一個「好」的順序,還是應
def foo(delegate: T => R)(data: List[T]): List[R]
我想我的問題的一般形式是如下:鑑於我們需要定義一個函數f
,該數據x1, x2, ..., xN
操作,使用委託功能對數據進行操作的g1, g2, ..., gM
以及不對數據進行操作的函數h1, h2, ..., hK
,函數f
的參數集的首選/正確順序是什麼?爲什麼?