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

相关文章:

  • AI原生应用领域多轮对话的安全性保障措施
  • 免Root卸载电视预装软件:ADBTV电视端ADB工具详解与使用指南
  • 共绘创新蓝图,引领肿瘤真实世界证据生成:艾昆纬与壹永科技达成战略合作
  • 基于Springboot智慧旅游管理系统【附源码+文档】
  • http的核心作用是什么?作用在参考模型当中的哪一层?
  • 微爱帮监狱寄信云存储技术实现方案
  • 近视为什么一到冬天就狂涨?第四个原因,90%的人没意识到
  • 有没有什么好办法让孩子坚持调节训练呢?
  • 程序员不怕BUG,怕的是老到没人要
  • Java毕设项目:基于SpringBoot的“鲜蔬坊”蔬菜销售平台(源码+文档,讲解、调试运行,定制等)
  • 小白也能学会的PyTorch安装教程GPU版|Miniconda-Python3.10上手指南
  • LLM - 生产级 AI Agent 设计手册:从感知、记忆到决策执行的全链路架构解析
  • 建议收藏!秘书工作可能用到的ai工具大合集来啦!
  • dbt+DataOps+StarRocks:构建一体化数据治理与智能分析平台实践
  • AI应用架构师如何巧妙落地增量学习应用实践
  • Markdown转HTML发布技术文章|Miniconda-Python3.10环境实操
  • Markdown文档自动化生成|Miniconda-Python3.10集成PyTorch日志分析
  • 在http中请求和响应包括几部分
  • 确保移动端适配良好以符合谷歌移动优先索引
  • Java毕设项目推荐-基于SpringBoot+vue招投标系统的设计与实现招标项目发布、投标文件提交、在线评标、合同管理全流程数字化招标方、投标方、评标专家、监管机构【附源码+文档,调试定制服务】
  • HTTP中GET接口测试
  • HTTP Keep-Alive 笔记
  • 斯坦福大学发现:AI系统分工模式的信息论奥秘
  • PyTorch模型微调实战:基于Miniconda-Python3.10环境复现SOTA结果
  • 生成sitemap.xml帮助搜索引擎理解网站结构
  • 游戏开发中常用的Python库
  • 输入URL并回车会发生什么
  • PyTorch官方推荐环境管理工具:Miniconda-Python3.10实战解析
  • P6825 「EZEC-4」求和
  • Pygame库的安装和配置步骤