10.2.3 处理数组
来源:互联网 发布:atm网络的信元路由在 编辑:程序博客网 时间:2024/06/08 05:01
10.2.3 处理数组
数组相似于简单的计算机内存模型,本质上,就是一组有编号的盒子,只要知道的编号,就可以轻松地读取或更改在任何盒子中的值。数组形成连续的内存块,所以,开销非常小,能用于存储大型数据集;数组[的代间]是提前分配的:一旦创建,其大小就固定了,因此,不能把新的值添加已有的数组中。
数组是可变的数据结构,因此,很容易修改。这在有些情况下是有用的,但对于函数式程序员来说,在有关程序状态方面,就失去了很多保障。我们先来看看基本的 F# 数组的语法,如清单 10.11 所示。
清单10.11创建和使用数组 (F# Interactive)
> let arr = [| 1 .. 5 |];; [1]
val arr : int array = [|1; 2; 3; 4; 5|]
> arr.[2] <- 30;; [2]
val it : unit = ()
> arr;;
val it : int array = [|1; 2; 30; 4; 5|]
> let mutable sum = 0 |
fori in 0 .. arr.Length – 1 do | [3]
sum<- arr.[i] + sum;; |
val mutable sum : int = 42
在 F# 中的数组支持所有的、我们期望数组做的基本操作。这里,我们首先初始化 arr,使用的语法非常类似于列表的初始化[1];接下来,使用赋值运算符改变数组,设定指定索引处的值[2]。注意,在 F# 中访问元素时,必须在指定索引的中括号前写一个点(.);接下来的几行,以命令式风格处理数组[3],使用 for 循环来遍历所有的元素,一个可变值用来保存总和。
如果你觉得清单 10.11有点乱,也不要担心,说明你已经习惯了函数式风格。我们通常不会这样写代码,这里只是为了演示语法。
虽然数组通常用于命令式编程,但一样能名以函数式风格来使用。除了我们已经看到的基本操作以外,F# 还提供了几个类似处理列表的高阶函数。看过使用这些函数处理数组,就不会感觉乱了。
- 10.2.3 处理数组
- 数组处理
- 数组处理
- 数组处理
- 数组处理
- VC#与数组处理
- Java二维数组处理
- jquery数组处理
- shell处理数组
- 数组array处理数据
- jQuery数组处理汇总
- jQuery数组处理详解
- 其他数组处理函数
- jQuery数组处理详解
- PHP数组处理函数
- 二分法处理重复数组
- PHP 处理多重数组
- jQuery数组处理详解
- mybaits调用mysql存储过程
- C++赋值与初始化的区别
- Android好奇宝宝_06_聊一聊Android里的动画
- iOS_适配
- Java基础---ByteArrayInputStream、ByteArrayOutputStream
- 10.2.3 处理数组
- MiniINI
- 电子商务系统的设计与实现(九):后端管理系统功能细化
- C++中函数调用时的三种参数传递方式
- ubuntu 安装 nfs
- cocos2dx3.2 CCNode
- C++/CLI 托管C++之结构体封装(内存对齐#pragma pack)【9】
- java 各种集合类的比较
- tomato/release/src/router/pppd/pppd/auth.c:972: undefined reference to `crypt'