我目前正在使用免费的在线资源学习F#.由于我很好奇并试图在一些小练习中应用学到的东西,我发现自己经常查阅MSDN F#文档.
但文档似乎对我来说真的很神秘.把这个文档页面的pown例如函数.用法很简单,但我不懂函数签名:
// Signature:
pown : ^T -> int -> ^T (requires ^T with static member One and ^T with static member op_Multiply and ^T with static member (/))
Run Code Online (Sandbox Code Playgroud)
有人可以向我解释一下,以下是什么?
我希望在一个答案中没有太多内容.
那里有一些事情,所以对于初学者来说,这就是我建议你在F#中使用签名的方法.首先,忽略那种抑扬 - 用心灵替代那里的蜱.然后你可以忽略"需要"部分 - 长话短说,它就在那里因为抑扬.
所以在那之后你有这样的签名:
// Signature:
pown : 'T -> int -> 'T
Run Code Online (Sandbox Code Playgroud)
'T是一个通用型-大写'T是一个.NET标准,F#通常使用小写'a,'b等什么这个签名描述的是一个函数,它接受一个'T和int,并返回'T.最后一个->类型是函数的"返回类型" - 至少这是在开始时考虑它的有用方法.
在现实中,还有更多的说了一下-在F#功能咖喱(和部分应用默认情况下),所以你真的是需要一个函数'T,返回签名的功能int -> 'T-在这一点很清楚,为什么你有双->.
旋风的东西是静态解决的类型 - 我看到@kvb已经提供了更多细节.很高兴意识到它存在,但它是在实践中很少使用的东西(你会在核心数字函数和运算符上看到它).