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

SW 随笔 006 — C# 模式匹配,豪华的布尔表达式

声明:个人笔记,概不负责

装裱

从用户角度来讲,

所谓 C# 模式匹配,就是一种运算,一种不改变原值的布尔运算,可以用来简化代码结构。

我觉得,有些文章在介绍这个语言功能时,有点激动过了头,有点莫名其妙的、不知所然的 装
这可能是因为,这种一楼的 代码结构,通常很少变动,大家习惯了 搬二楼的砖,造二楼的工具
对于 pattern matching 我用到现在的体会,感觉像那时候对 LINQ 的初接触,真是 激动人心哪!

官方文档、许多博客,讲 C# 模式匹配,开篇那么多 花里胡哨的(所谓精确)介绍干嘛,徒增 用户心智负担。
这玩意的本质,对用户来说,就是这么简单啊,

我关心 你语言的实现 干嘛,我就是很 Low 的、搬二楼砖的 用户呀,我会关心 if-else 的实现吗?
我只关心,怎么用耶,怎么 飞起来……

轮回

这一世(在这个世界里),我们终于回看,源自于 结构化编程(Since 1966)近百年没有变化的 if-else 与 switch 结构.

为什么 bool [来] 的那么 平凡,[去] 得那么 简单。【来= 求值方式】 【去= 控制流分派】

如果,为它的 [来] 做点什么呢? 如果,为它的 [去] 做点什么呢?

一直以来,这种层次的活,都是住 二楼的人 管的;
一楼的样板房,近百年来没有啥变化,造一楼的人 不关心这个层次的问题。

所谓 C# 模式匹配,就是一种运算,一种不改变原值的布尔运算,可以用来简化代码结构。

三观,《九阴真经》总纲

C# 模式匹配,在 when 上,彻底暴露了其 本质

    //// 拿来运算后再用,必须用 when 做统一入口;拿来就用,可以用模式// // 换句话说,就是说 when 是统一模式,表示要开始 自定义计算了,否则全部用 内置模式 计算;// 哪天有啥 内置模式 支持 位操作,那么就可以不用 when 了;// 换句话说,完全可以不用 内置模式 计算,全部用 when 来算。 //// 所谓 C# 模式匹配,就是一种运算,一种不改变原值的布尔运算,可以用来简化代码结构。//public PacketState LastStatus => _flags switch{//// The order is important//_ when (_flags & PacketState.Responded) != 0 => PacketState.Responded,_ when (_flags & PacketState.Acked) != 0 => PacketState.Acked,_ when (_flags & PacketState.Sent) != 0 => PacketState.Sent,_ when (_flags & PacketState.Created) != 0 => PacketState.Created,_ => PacketState.None};

以上观点, 通过 Copilot 校核,不是 错误 观点,但却被 批改,要用 规范术语
神经病啊,我 虽然不精确,但是完全没有错,基本涵盖其 九成本质
我是用户耶, 我不是机器,自由的思想 不受 钦定术语 的束缚,自由的飞翔……

化身

// TODO: 遇到 合适的例子吧,水货 代码反正多呢

==== 好像也没什么说的,结束

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

相关文章:

  • 读书笔记7-12.4
  • 共绘创新蓝图,引领肿瘤真实世界证据生成:艾昆纬与壹永科技达成战略合作
  • 告别千篇一律:软文推广如何打造独特“新鲜感“?
  • AI原生应用领域多轮对话的安全性保障措施
  • 免Root卸载电视预装软件:ADBTV电视端ADB工具详解与使用指南
  • HTTP在参考模型中的哪一层
  • CUDA驱动不匹配?Miniconda-Python3.10镜像自动检测修复机制
  • Java计算机毕设之基于SpringBoot的学校图书管理系统设计与实现基于SpringBoot+Vue的图书管理系统的设计与实现(完整前后端代码+说明文档+LW,调试定制等)
  • 一个合格的程序员必读经典书籍(含下载链接PDF)
  • async 和 await 详细解析
  • 基于Springboot智慧旅游管理系统【附源码+文档】
  • 全域适配,精准输出,这款组合导航重新定义精准数据
  • 5层是7层中的哪两层进行了合并
  • Anaconda下载太慢?改用Miniconda-Python3.10+清华镜像极速体验
  • C++ 多态:面向对象的 “灵活灵魂”
  • 领域专用提示词之视频主题与内容创作
  • Java计算机毕设之java-springboot蔬菜交易平台 基于SpringBoot的生鲜蔬菜电商交易基于SpringBoot的“鲜蔬坊”蔬菜销售平台(完整前后端代码+说明文档+LW,调试定制等)
  • http的核心作用是什么?作用在参考模型当中的哪一层?
  • 基于 Linux 内核模块的字符设备互斥访问实验
  • Markdown撰写技术博客|Miniconda-Python3.10环境实测PyTorch性能
  • 领域专用提示词系列扩展
  • 微爱帮监狱寄信云存储技术实现方案
  • 近视为什么一到冬天就狂涨?第四个原因,90%的人没意识到
  • Linux 字符设备驱动中 “主次设备号的静态 / 动态分配” 实验
  • ThinkLink 正式上线 Docker 安装版本:快速部署的一体化 LoRaWAN 物联网平台
  • Java毕设项目:基于SpringBoot的房屋租赁系统的设计与实现(源码+文档,讲解、调试运行,定制等)
  • 有没有什么好办法让孩子坚持调节训练呢?
  • Pyenv管理多个Python版本?不如试试Miniconda-Python3.10专用环境
  • 程序员不怕BUG,怕的是老到没人要
  • 制定内容日历实现长期稳定更新节奏