当前位置: 首页 > 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.rkmt.cn/news/8263.html

相关文章:

  • ctfshow 菜狗杯
  • 详细介绍:测试用例详解
  • conda 无法安装依赖 CondaHTTPError: HTTP 000 CONNECTION FAILED for url: tsinghua tencentaliyun
  • vulnhub(持续更新)
  • 小爱同学连接电脑进行交互 教程
  • 已完成今日求所有满足长为 $a$ 的和为 $b$ 的按位或为 $c$ 的非负整数序列的异或和的异或和大学习
  • 集群无法启动CRS-4124: Oracle High Availability Services startup failed - 指南
  • Hello Yqc!
  • SAPO去中心化训练:多节点协作让LLM训练效率提升94%
  • 区间问题
  • 解决 Ubuntu 25.04 下 make menuconfig 报 ncurses 错误的问题 - 指南
  • web359
  • 如何在后端优雅地生成并传递动态错误提示?
  • web358
  • WPF包
  • 实用指南:目标检测如何将同时有方形框和旋转框的json/xml标注转为txt格式
  • ctfshow web351
  • Linux虚拟机常用命令与Hadoop生态组件启动大全
  • private void Form1_Load与构造方法前执行顺序
  • HarmonyOS Stage模型与ArkTS:现代应用开发的核心架构与最佳实践 - 详解
  • 完整教程:构建基石:Transformer架构
  • 【先记录一下】windows下使用的lazarus/fpc安装到中文的目录时出错的问题
  • CF182C Optimal Sum
  • HTB UNIV CTF 24 Armaxix靶场漏洞链:命令注入与账户接管实战
  • PyTorch Weight Decay 技术指南
  • js获取浏览器语言,以及调用谷歌翻译api翻译成相应的内容
  • The 2025 ICPC Asia EC Regionals Online Contest (II)
  • C++线上练习
  • 深入解析:N32G43x Flash 驱动移植与封装实践
  • 深入解析:uv:用 Rust 重写的极速 Python 包管理器