[英]How to define F# generic function argument in a generic function?
let getLogicalWithDoubleLevelElement<'E when 'E :> DoubleLevelElement>
(logicalModifier : InletPosition * OutletPosition -> Logical)
(logical : Logical) =
我需要logicalModifier
是泛型函數,類型與getLogicalWithDoubleLevelElement
類型參數相同。
如何定義?
如果您需要將顯式多態函數作為參數傳遞,那么在 F# 中執行此操作的唯一方法是使用具有泛型方法的新類型:
type LogicalModifier =
abstract MakeLogical<'E when 'E :> DoubleLevelElement> : InletPosition * OutletPosition -> Logical
let getLogicalWithDoubleLevelElement<'E when 'E :> DoubleLevelElement>
(logicalModifier : LogicalModifier)
(logical : Logical) = ... logicalModifier.MakeLogical<'E> ...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.