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',我将能够通过上述方法公开 –