本文概述
- F#一维数组
- F#内置方法创建数组
- F#一维数组示例
- 使用表达式序列的F#一维数组
- F#使用Array.create方法创建数组, 并使用For-In循环遍历
- F#将数组传递给函数:打印数组元素
- F#将数组传递给函数:打印最小数量
- F#将数组传递给函数:打印最大数量
- F#多维数组
- F#多维数组
- F#打印数组矩阵而不使用循环
F#数组类型
F#主要提供2种类型的数组
- 一维数组
- 多维数组
let arr=[| 1;
2;
3;
4;
5;
|]
你还可以通过使用表达式序列来创建数组。下面的示例创建一个整数数组, 其值从1到10。
let arr = [| for i in 1..10->
i |]
F#内置方法创建数组 System.Array中有各种内置方法。它有助于根据需要创建阵列。你可以使用这些方法在F#中创建数组。
方法 | 描述 |
---|---|
Array.empty示例让arr = Array.empty | 它创建一个不包含元素的新数组。 |
Array.create范例让arr = Array.create 10 2 | 它创建一个指定大小的数组, 并将所有元素设置为提供的值。 |
Array.init范例让arr = Array.init 10(fun index-> ?? index) | 它通过使用给定的维数和一个函数来生成元素来创建数组。 |
Array.zeroCreate例。让arr = Array.zeroCreate 10 | 它创建一个数组, 其中所有元素都初始化为零。 |
let arr = [| 1;
2;
3;
4;
5;
|]// Creating and initializing array
for i = 0 to arr.Length-1 do// Traversing of array
printfn "%d" arr.[i]
输出:
1
2
3
4
5
使用表达式序列的F#一维数组
let arr = [| for i in 1..10 ->
i |]
for i = 0 to arr.Length-1 do
printfn "%d" arr.[i]
输出:
1
2
3
4
5
6
7
8
9
10
F#使用Array.create方法创建数组, 并使用For-In循环遍历 F#Array.create方法创建指定长度的数组, 并通过指定的值设置整个数组。稍后, 你可以使用Array.set方法后跟索引和值来分配或设置新值。
let arrayName = Array.create 5 0
Array.set arrayName 1 12// Set element to given index using set function
for i in [0..arrayName.Length-1] do
printfn "%d" arrayName.[i]
输出:
0
12
0
0
0
F#将数组传递给函数:打印数组元素
let printArray(arr:int[]) =
printfn "Printing array elements:"
for i = 0 to arr.Length-1 do
printfn "%d" arr.[i]let arr1 = [|25;
10;
20;
15;
40;
50;
|]
let arr2 = [| 12;
23;
44;
11;
54;
|]
printArray arr1
printArray arr2
输出:
Printing array elements:
25
10
20
15
40
50
Printing array elements:
12
23
44
11
54
F#将数组传递给函数:打印最小数量
let printArray (arr:int[]) =
let mutable min = arr.[0]
printf "Minimun element is: "
for i = 1 to arr.Length-1 do
if(min>
arr.[i])then
min <
- arr.[i]
printfn "%d" minlet arr1 = [|25;
10;
20;
15;
40;
50;
|]
let arr2 = [|12;
23;
44;
11;
54;
|]
printArray arr1
printArray arr2
输出:
Minimun element is: 10
Minimun element is: 11
F#将数组传递给函数:打印最大数量
let printArray (arr:int[]) =
let mutable max = arr.[0]
printfn "Maximum element is: "
for i = 1 to arr.Length-1 do
if(max<
arr.[i])then
max <
- arr.[i]
printfn "%d" maxlet arr1 = [|25;
10;
20;
15;
40;
50;
|]
let arr2 = [|12;
23;
44;
11;
54;
|]
printArray arr1
输出:
Maximum element is: 50
Maximum element is: 54
F#多维数组 F#允许我们创建多维数组。多维数组也称为数组数组。它可以是2维, 3维或更大。
在F#中, 可以创建多维数组, 但是没有用于编写多维数组的语法。 F#使用array2D运算符从数组元素序列的序列中创建二维数组。序列可以是数组或列表。
F#多维数组 在这里, 我们使用array2D运算符创建2D数组。
let arr = array2D [ [ 1;
0];
[0;
1] ]
for i = 0 to 1 do
for j = 0 to 1 do
printf "%d " arr.[i, j]
printf "\n"
输出:
1 0
0 1
F#打印数组矩阵而不使用循环 你可以通过在printf函数中使用%A(格式说明符)来打印数组矩阵。
let arr = array2D [| [| 1;
0 |];
[| 0;
1 |] |]
printf "%A" arr
【F#数组】输出:
[[1;
0]
[0;
1]]