#符号在f#函数签名中的含义是什么?

Ani*_*tel 9 f# types symbols casting type-signature

我见过这样定义的函数:

let private applyTarget (logger:#ILogger) ceiling target =
    logger.Debug "enforce ceiling"
    match target > ceiling with
    | true -> ceiling | false -> target
Run Code Online (Sandbox Code Playgroud)

什么是#符号中的签名是什么意思?

什么区别logger:ILoggerlogger:#ILogger

Fyo*_*kin 12

类型签名#t称为"灵活类型",只是一个简短的手'a when 'a :> t.

也就是说,#t意思是"任何子类型t".