向現有型別新增新的靜態函式
F#允許使用新的靜態函式擴充套件現有型別。
type System.String with
static member EqualsCaseInsensitive (a, b) = String.Equals(a, b, StringComparison.OrdinalIgnoreCase)
這個新函式可以像這樣呼叫:
let x = String.EqualsCaseInsensitive("abc", "aBc")
// result is True
此功能可能意味著不必建立實用程式函式庫,而是可以將它們新增到相關的現有型別中。這對於建立更多 F#友好版本的函式非常有用,這些函式允許使用 currying 等功能。
type System.String with
static member AreEqual comparer a b = System.String.Equals(a, b, comparer)
let caseInsensitiveEquals = String.AreEqual StringComparison.OrdinalIgnoreCase
let result = caseInsensitiveEquals "abc" "aBc"
// result is True