在程序代码中,statusstate是我们经常使用的两个单词,他们一般被解释为[状态]。但是虽然都被解释为[状态],但是它们的使用场景是不同的,对于具有强迫症,喜欢寻求真理的程序猿来说,必须得了解它们的区别,于是便引发了很多论坛对于status vs state的讨论,包括google在内。下面是我在知乎上看到的关于status vs state的比较通俗易懂的解释,也是赞同率最高的一个。

推荐

文章将率先在公众号「码途有道」上发布,欢迎大家关注!

Satus Vs State

State 表达的是形态,而 Status 表达的是从一种形态转换成另一种形态的过程中,那些有显著特征的离散中间值。

举一个旅馆房间的例子,一个房间可以是婚房、普通房、豪华总统房,这些都是用 State 来表达。把一个普通房改造成豪华总统房,这个过程就有设计、材料准备、工人就位、施工、验收等步骤,这个时候就用 Status 来表达。那么,区分点在哪?区分点就在于一个房间当用 State 描述时,它是个彼此独立的枚举值,可以没有前后顺序的在婚房、普通房、豪华总统房之间来回转换。而当使用 Status 时,是存在前后状态依赖关系的一个变化量,不能没有做设计就施工,也不能没施工就验收。

所以,StateStatus 的核心区别,就是它们的枚举值之间是否有依赖关系,没有依赖关系的用 State,有依赖关系的用 Status

知乎帖子地址点我

程序代码中,怎么区分status和state?相关推荐

  1. vscode 快速调到定义处_vim技巧:在程序代码中快速跳转,在文件内跳转到变量定义处...

    本篇文章介绍 vim 的一些使用技巧: 在程序代码中快速跳转 在文件内跳转到变量定义处 在程序代码中快速跳转 在 vim 中查看代码文件时,可以使用下面命令在程序代码中快速跳转,提高效率. % 跳转到 ...

  2. java面试题25 在程序代码中写的注释太多,会使编译后的程序尺寸变大。

    java面试题25 在程序代码中写的注释太多,会使编译后的程序尺寸变大. A:正确 B:错误 蒙蔽树上蒙蔽果,蒙蔽树下你和我 拿到这道题,我觉得说的贼有道理,注释太多,尺寸变大.无疑与就和驾考 一样, ...

  3. 程序代码中常用英文单词使用总结

    在写面向对象程序代码时有时想不起来应该用什么单词给类命名,下面把一些常用单词列出来,供以后写程序时参考: 源/基/头 Root Source Home Base Head 获取器或查询器 Getter ...

  4. 程序代码中到底用英语起名还是用拼音?

    这个问题似乎是不需要讨论了.所有有点经验的程序员都会毫不犹豫的回答,当然是英文.但我今天偏要来说一说我自己的意见,并不能这么一概而论. 据某网站调查,给变量命名是程序员每天最头疼的事.所以可见不论英文 ...

  5. UE4 编辑器代码中如何区分不同的客户端窗口(UE4多开窗口)?

    众所周知,UE4 可以在设置中进行窗口多开,即同时开启不超过10个客户端和一个DS,那么多开的窗口是不是多个线程,如何编写这种多窗口下的逻辑代码呢? 多开的窗口不是多线程,而是多个继承GameInst ...

  6. c语言程序代码中的间隔,printf()函数输出后 默认的间隔是多少

    7楼那么输出应该就可以了,不过楼主显然不是这个意思,问题的关键在于普通输出都是直接%d而它用%2d是不是这个2搞的!? ----------------解决方案-------------------- ...

  7. c语言程序代码中的间隔,c语言时间间隔代码怎么弄?

    这个是一个求时间间隔的函数,可能还不是很准确,因为是以秒数相除求解的.所以有待改进. [cpp] view plaincopy int getDay(int *diffday/*天数*/) time_ ...

  8. 程序开发中 status 还是 state

    对比: 程序开发中,两个都解释为状态: status表示关联状态的转变,例如[账户]的正常.冻结.删除: state表示非关联状态的转变,例如[枚举]: 参考: 程序代码中,怎么区分status和st ...

  9. 寻路机器人单片机程序示例_单片机精华程序代码示例:DS1302时钟程序

    真正的熟练掌握单片机,实际操作是很重要的.多看程序,多分析,从别人规范的程序代码中学习技巧是很必要的. 硬件部分: 程序部分: main.c文件 /************************** ...

  10. 十几行程序代码搞定 Master-Detail GridView(内含子 GridView)

    摘要在网络上看到很多 GridView 内含子 GridView 的范例,虽然方法不同不过程序代码都有点小复杂,想说难道没有更简单易懂的方法吗? 在此文章中将用十几行的程序代码,就教你快速学会并搞定这 ...

最新文章

  1. Redis配置到本地以及可视化工具的安装运用
  2. 软件测试培训分享:做软件测试需要掌握数据库的知识吗?
  3. 【超级攻略】仔细研究这些潜规则,你的APP用户量立刻翻番!
  4. NYOJ 663 弟弟的作业
  5. COG、XR、X5R、Y5V电容器分类
  6. 一个一直没想通的问题:为什么印度的软件外包能比中国强那么多?这应该是中国人的强项啊...
  7. android 代码 升级rom,ROM之家简析:Android手机系统怎么升级
  8. 江苏开放计算机绘图作业1,江苏开放大学计算机绘图形考2
  9. 0418 面向对象进阶 反射内置函数
  10. 人像处理:不要用减淡工具了!用柔光叠加去擦!加深也不如正片叠底
  11. 2021-06-06label标签 icon 图标设置
  12. C#中Lambda表达式总结
  13. PHP has encountered an Access Violation at
  14. stm32 OV7670摄像头模块的介绍以及应用(SCCB的使用)
  15. 手势密码解锁微信小程序项目源码
  16. oracle断电ora-01033,ora-00600,
  17. android手机otg,OTG是什么?Android手机OTG功能怎么开启和使用?
  18. OpenCV—python 角点特征检测之一(cornerHarris、Shi-Tomasi、FAST)
  19. 并发--生产者消费者模式
  20. 官方公布中国自行车排名十强辐轮王土拨鼠全世界碳纤维自行车品牌

热门文章

  1. python学习资源分享(编程基础_数据分析_机器学习模型_行业资讯)
  2. linux mbr 分区表修复,linux fdisk修复分区
  3. xcode 怎么调用midi开发录音_直播_个人工作室入门_1K-2k价位录音编曲声卡推荐
  4. Android开发 入门篇(一)
  5. 【黄啊码】软件测试之Loadrunner教程
  6. C# winform推荐波形图表控件scottplot
  7. 小数分频器vhdl实现_小数分频VHDL代码
  8. RIP总结(转自鸿鹄论坛)
  9. linux 卸载vnc,realvnc的卸载
  10. 软件测试VS软件开发哪个好?怎么选择