向现有类型添加新的静态函数
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