F# 向现有类型添加新方法/属性
示例
F#允许在定义函数时将它们作为“成员”添加到类型(例如,记录类型)。但是,F#还允许将新的实例成员添加到现有类型中,甚至可以是在其他地方和其他.net语言中声明的成员。
以下示例Duplicate向的所有实例添加了新的实例方法String。
typeSystem.Stringwith
memberthis.Duplicatetimes =
Array.inittimes (fun _ -> this)注意:this是一个任意选择的变量名,用于引用正在扩展的类型的实例-x会同样有效,但可能不那么自描述。
然后可以通过以下方式调用它。
//F#风格的通话 let result1 = "嗨,您好!".Duplicate 3 //C#样式的调用 let result2 = "嗨,您好!".Duplicate(3) // Both result in three "嗨,您好!" strings in an array
此功能与C#中的扩展方法非常相似。
也可以以相同方式将新属性添加到现有类型。如果新成员不接受任何参数,它们将自动成为属性。
typeSystem.Stringwith
memberthis.WordCount=
' ' //空格字符
|> Array.singleton
|> fun xs -> this.Split(xs, StringSplitOptions.RemoveEmptyEntries)
|> Array.length
let result = "This is an example".WordCount
//结果是4
热门推荐
7 简短的二胎祝福语
10 简短霸气女儿生日 祝福语
11 祝福语高考小众诗句简短
12 元旦祝福语20秒简短
13 老师过年祝福语大全 简短
14 一生祝福语简短
15 产检祝福语简短霸气
16 朋友店开张祝福语简短
17 生日爱情祝福语大全简短
18 朋友女儿生日祝福语 简短