內聯
內聯允許你使用函式體替換對函式的呼叫。
這有時對於程式碼關鍵部分的效能原因很有用。但是對應的是你的程式集會佔用很多空間,因為函式體在呼叫發生的每個地方都是重複的。在決定是否行內函數時必須小心。
可以使用 inline
關鍵字行內函數:
// inline indicate that we want to replace each call to sayHello with the body
// of the function
let inline sayHello s1 =
sprintf "Hello %s" s1
// Call to sayHello will be replaced with the body of the function
let s = sayHello "Foo"
// After inlining ->
// let s = sprintf "Hello %s" "Foo"
printfn "%s" s
// Output
// "Hello Foo"
具有本地價值的另一個例子
let inline addAndMulti num1 num2 =
let add = num1 + num2
add * 2
let i = addAndMulti 2 2
// After inlining ->
// let add = 2 + 2
// let i = add * 2
printfn "%i" i
// Output
// 8