2
一個簡單的例子,讓錯誤,因爲let str
是私人:有沒有辦法在內聯方法中使用let語句?
let launch = printfn "%s"
type Test() =
let str = "Hello"
member inline t.A() =
launch str
我在F#和重寫後發現靜態解析類型參數有一個神經網絡圖書館,功能95%都是內聯爲結果,包括類方法。我首先將它作爲F#腳本編寫,忘記腳本模式和編譯模式在處理內聯方法時存在差異。
let test = // Is this the only choice?
let str = "Hello"
fun() ->
launch str
有沒有什麼方式,使用F#類體初始化或者我應該重寫類是高階函數像上面?謝天謝地,這不會成爲一個問題。
This question is related to this one, but I thought I'd ask again since it has been 5 years.
你實際上並沒有把它變成私人的 - 'member private t.Str = str'工作嗎? – ildjarn
只有F#腳本模式,不是交互式。我不介意讓let語句在類中公開的方式,而不必通過成員公開它們。事實上,如果str不是'string',而是'^ a',那麼我就不能暴露它,因爲它會逃避範圍。我不得不使用記錄來解決這個問題。其實這可能是值得另一個SO的問題......其實,進一步審查這只是一個複雜的情況下,我有。如果'str:'a',我將能夠通過上述方法公開 –