14、F 编程中的类型理解与对象编程

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 [] // 使用显式类型注解

这样,值就不是泛型的,值限制也就不适用了

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值