📅  最后修改于: 2023-12-03 14:41:21.406000             🧑  作者: Mango
在 F# 中,数组是最常见的数据类型之一。数组可以存储并访问多个元素,所有元素类型必须相同。
下面是声明数组的基本语法:
let arrayName : dataType[] = Array.zeroCreate size
其中,arrayName
是数组的名称,dataType
是数组的元素类型,size
是数组的大小。
例如,可以声明一个包含 5 个整数的数组:
let numbers : int[] = Array.zeroCreate 5
还可以使用 {}
运算符指定数组元素的初值:
let numbers = [| 1; 2; 3; 4; 5 |]
这里,[|
和 |]
是 F# 中的符号,用于创建数组。
F# 中的数组是零索引的,这意味着数组的第一个元素的索引为 0,第二个元素的索引为 1,以此类推。可以使用 [ ]
运算符访问数组元素。
例如,访问上面创建的数组的第一个和最后一个元素:
let first = numbers.[0]
let last = numbers.[numbers.Length - 1]
F# 支持多种方式遍历数组。
使用 for 循环遍历数组:
for i = 0 to numbers.Length - 1 do
printfn "Element %d: %d" i numbers.[i]
使用迭代器遍历数组:
let iter = numbers.GetEnumerator()
while iter.MoveNext() do
printfn "Element: %d" iter.Current
使用高阶函数遍历数组:
Array.iter (fun x -> printfn "Element: %d" x) numbers
这里 Array.iter
是一个高阶函数,它接受一个函数作为参数,该函数将应用于数组中的每个元素。
F# 数组提供了许多有用的方法。以下是一些常用方法的示例:
使用 Array.map
方法将数组映射到另一个数组:
let squares = Array.map (fun x -> x * x) numbers
这个函数将对数组中的每个元素应用一个函数,并返回一个新的数组。
使用 Array.filter
方法过滤数组:
let evens = Array.filter (fun x -> x % 2 = 0) numbers
这将返回一个仅包含偶数的新数组。
使用 Array.fold
方法将数组元素缩减为单个值:
let sum = Array.fold (fun acc x -> acc + x) 0 numbers
这个函数将对数组中的每个元素应用一个函数,该函数将计算数组的总和。
上述是 F# 数组的基本知识点,F# 数组是功能丰富的数据类型,许多有用的函数和方法可以用于处理数组。