摘要: ref类型是在一个程序里使用可变状态的一种简单的方式,也就是说,可以随时间改变的值。ref类型仅仅是一个纪录类型的单一可变字段,在F#库中。访问和更新字段的一些操作符的定义都很简单。F#的ref类型定义使用类型参数,在上一章介绍过这个概念,所以尽管ref类型的值可以是任何类型,一旦您已创建了一个实例的值,你将不能改变值的类型。 创建一个ref类型的实例很简单,你可以使用关键字ref后跟代表任何项目的ref值。下面的例子是编译器的输出(显示phrase的类型是 string ref,意思是一个仅包含字符串的引用类型)let phrase = ref "Inconsistency&quo 阅读全文
posted @ 2011-12-08 21:16 银河系漫游指南 阅读(1117) 评论(0) 推荐(0) 编辑
摘要: 在第三章,你第一次接触了记录类型,我并没有讨论如何更新它们的字段。这是因为,默认情况下记录类型是不可更改的。F#提供了特殊的语法,以允许更新记录类型里的字段,在记录类型的字段前面使用关键字mutable。我必须强调,这一操作改变的内容是记录的字段,而非记录本身。#light type Couple = { her : string ; mutable him : string }let theCouple = { her = "Elizabeth Taylor " ; him = "Nicky Hilton" }let print o = printf 阅读全文
posted @ 2011-12-08 13:03 银河系漫游指南 阅读(374) 评论(0) 推荐(0) 编辑
摘要: 在第三章中,我们谈到如何使用关键字let绑定标识符到值,并指出在那些情况下可以重新定义和恢复之前的值,但是不能修改。如果你想定义一个标识符,其值可以随时间而改变(亦即随程序运行而改变),你可以使用mutable关键字,用于更新这些标识符的是一个特殊的操作符,左ASCII箭头(或只是左箭头),由一个小于号和破折号(-)组成。使用左箭头的更新操作具有unit类型,所以你可以链接多个操作。下一个例子演示如何定义一个字符串类型的mutable标识符,然后改变它的值。#light let mutable phrase = "How can I be sure, " print_end 阅读全文
posted @ 2011-12-08 11:49 银河系漫游指南 阅读(588) 评论(0) 推荐(0) 编辑