F# 编程中的类型理解与对象编程
一、F# 函数式编程中的类型理解
在 F# 编程里,类型的理解至关重要。下面先看一些基本的类型定义代码:
let listOfEmptyLists = [[]; []]
let makeArray () = Array.create 100 []
val emptyList : 'a list
val initialLists : 'a list * int list
val listOfEmptyLists : 'a list list
val makeArray : unit -> 'a list []
(一)应对值限制
值限制在 F# 编码中较为常见,尤其是在使用 F# Interactive 时。因为在 F# Interactive 中,类型推断的范围是每个输入项,而非整个文件,所以对代码片段的约束较少。以下是几种应对值限制的方法:
1. 将值约束为非泛型
当你定义像 empties 这样的变量时,如果本意是创建一个具有特定类型的值,就可以使用显式类型注解。例如:
let empties = Array.create 100 [] // 原定义有问题,不清楚数组类型
let empties : int list [] = Array.create 100 [] // 使用显式类型注解
这样,值就不是泛型的,值限制也就不适用了
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



