F#入门-第二章 F#基础-第十四节 数组

    数组是数据的集合。
    虽然从这个意味上来说,数组与列表很相似,但是使用数组索引可以访问到数组中某个元素,这点同列表不同。
    与列表相同,数组中的元素必须全部是相同数据类型。
    数组的写法为在数组两边加[| |],元素与元素之间与F#相同,用;进行分隔。

数组
> [| |];;
val it : 'a [] = [||]
> [|1;2;3|];;
val it : int [] = [|1; 2; 3|]
> [|"abc";"def";"ghi"|];;
val it : string [] = [|"abc"; "def"; "ghi"|]


    使用数组索引可以访问数组中的元素,第一个元素的数组索引为0。数组索引越界(数组中不存在数组索引指向的元素)访问时引发程序异常。关于程序异常及异常处理在后文进行介绍。

访问数组元素
> let array = [|1;2;3;4;5|] in array.[0];;
val it : int = 1
> let array = [|1;2;3;4;5|] in array.[3];;
val it : int = 4
> let array = [|1;2;3;4;5|] in array.[6];;
System.IndexOutOfRangeException: 索引超出了数组界限。
   在 <StartupCode$FSI_0007>.$FSI_0007._main@()
stopped due to error
//虽然没有什么意义,但是这种写法是允许的
> [|1;2;3;|].[2];;
val it : int = 3


    数组与列表一样,可以使用简略写法。

数组的简略写法
> [|1..10|];;
val it : int [] = [|1; 2; 3; 4; 5; 6; 7; 8; 9; 10|]
> [|1..2..10|];;
val it : int [] = [|1; 3; 5; 7; 9|]
> [|1..3..20|];;
val it : int array = [|1; 4; 7; 10; 13; 16; 19|]
posted @ 2010-10-06 19:13  至尊无上  阅读(551)  评论(0)    收藏  举报