当前位置: 首页 > news >正文

【F#学习】数组:Array

Array

在F#中, 一个数组(Array)包含0个或多个元素,长度固定,但内容可以改变。元素需要具有相同的类型

// 声明一个数组。注意看清操作符是 [| 和 |]
let empty = [| |]
let emptyAlternative = Array.emptylet singleValue = [| 5 |]
let singleValueAlternative = Array.singleton 5let threeValues = [| "a"; "b"; "c" |]

通过下标(index)可以读取或者修改数组中的元素。下标从零开始计算。语法和C#类似。

let numbers = [| 2; 3; 5 |]// 修改元素5为9
numbers[2] <- 9// 读取
numbers[2]
// => 9

通过在Array模块中定义的函数和运算符,可以对数组进行操作。当然,通过模式匹配(pattern matching)也可以。

let describe array =match array with| [| |] -> "Empty"| [| 1; 2; three |] -> sprintf "1, 2, %d" three| _ -> "Other"describe [| |]         // => "Empty"
describe [| 1; 2; 4 |] // => "1, 2, 4"
describe [| 5; 7; 9 |] // => "Other"

在模式匹配中,使用丢弃运算符_表示你不关心这个位置对应的元素。

let describe array =match array with| [| |] -> "空"| [| x |] -> "单元素"| [| _; y |] -> "双元素"| _ -> "多元素"describe [| |]          // => "空"
describe [| 1 |]        // => "单元素"
describe [| 5; 7 |]     // => "双元素"
describe [| 5; 7; 9 |]  // => "多元素"

单独使用_进行模式匹配的时候,务必把它放在最后,因为模式匹配是由上到下进行的。

http://www.jsqmd.com/news/222/

相关文章:

  • CTFWEB姿势总结
  • 详细介绍:架构思维:分布式缓存实战
  • 规模化加速AI:从用户、开发者到企业的深度策略解析
  • ctfshow 菜狗杯
  • 详细介绍:测试用例详解
  • 国际服务器(VPS):泰国、印尼、菲律宾、马来西亚、香港、台湾、新加坡、日本、美国、英国等。
  • 缓存常见问题
  • ctfshow 电子取证
  • 插入排序与希尔排序 - 实践
  • 最新IDEA 2025 专业版破解永久破解教程(附资源)intellij IDEA
  • AtCoder ABC423F - Loud Cicada 题解 容斥原理
  • 1756:八皇后
  • 矩阵置零-leetcode
  • 重新开始配置hadoop等
  • IIS 部署 asp.net core 实用的方案时,出现500.19、500.31问题的解决方案
  • 嘉立创常用快捷键
  • 02020402 EF Core基础02-EF Core数据的增删改查
  • conda 无法安装依赖 CondaHTTPError: HTTP 000 CONNECTION FAILED for url: tsinghua tencentaliyun
  • 牛客刷题-Day2
  • 实用指南:kafka 原理详解
  • 图解支付系统账务系统核心设计 - 智慧园区
  • 网络编程-HTTP - 详解
  • vulnhub(持续更新)
  • 小爱同学连接电脑进行交互 教程
  • 网络流初步浅谈:EK与Dinic
  • Spring框架事件驱动架构核心注解之@EventListener - 指南
  • FreeRTOS SMP 资料收集
  • 解码C语言结构体
  • 已完成今日求所有满足长为 $a$ 的和为 $b$ 的按位或为 $c$ 的非负整数序列的异或和的异或和大学习
  • 集群无法启动CRS-4124: Oracle High Availability Services startup failed - 指南