当前位置: 首页 > 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.hskmm.com/?act=detail&tid=9981

相关文章:

  • CTFWEB姿势总结
  • 规模化加速AI:从用户、开发者到企业的深度策略解析
  • ctfshow 菜狗杯
  • 国际服务器(VPS):泰国、印尼、菲律宾、马来西亚、香港、台湾、新加坡、日本、美国、英国等。
  • 缓存常见问题
  • ctfshow 电子取证
  • Hello,World!
  • 最新IDEA 2025 专业版破解永久破解教程(附资源)intellij IDEA
  • AtCoder ABC423F - Loud Cicada 题解 容斥原理
  • 1756:八皇后
  • 矩阵置零-leetcode
  • 嘉立创常用快捷键
  • 02020402 EF Core基础02-EF Core数据的增删改查
  • conda 无法安装依赖 CondaHTTPError: HTTP 000 CONNECTION FAILED for url: tsinghua tencentaliyun
  • 牛客刷题-Day2
  • 图解支付系统账务系统核心设计 - 智慧园区
  • vulnhub(持续更新)
  • 小爱同学连接电脑进行交互 教程
  • 网络流初步浅谈:EK与Dinic
  • 解码C语言结构体
  • 已完成今日求所有满足长为 $a$ 的和为 $b$ 的按位或为 $c$ 的非负整数序列的异或和的异或和大学习
  • Hello Yqc!
  • 2025.9.19——卷9-10选择
  • 软件工程学习日志2025.9.19
  • ECT-OS-JiuHuaShan 框架元推理,是人类良医与福音
  • upload-labs全通关
  • SAPO去中心化训练:多节点协作让LLM训练效率提升94%
  • mybatis-plus学习笔记
  • 区间问题
  • 操作系统,知识体系一共包含哪些部分? - 实践