最近在维护项目的代码,发现了由于Flag不一致导致的很多问题,现在对这一问题总结。

1,flag分为两种,可以组合的和不可以组合的。可以组合的flag适合用每一位表示一个含义。不适合组合的flag适合用枚举类型。

例如:窗口按钮选项适合用位来表示(最大化|最小化|关闭)

窗口类型(模式对话框VS非模式对话框)适合用枚举。

2,修改代码的时候,由于无法弄清每个flag的关系,改一个bug总是要依靠之前的数据。这样修改起来就会一个地方改了其他地方跟着动。

3,建议对于不同的情况直接编写不同的函数。由于情况组合很复杂的,尽量在编写代码的过程中进行重构,以此防止代码腐化。

关于Flag的定义的更多相关文章

  1. GO语言的进阶之路-Golang高级数据结构定义

    GO语言的进阶之路-Golang高级数据结构定义 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我们之前学习过Golang的基本数据类型,字符串和byte,以及rune也有所了解, ...

  2. Java学习--基本数据类型的定义和运算

    例1: public class DataDemo05{ public static void main(String args[]){ char ch1 = '\"' ; // 表示的是一 ...

  3. 单片机,struct ,union定义标志,节约RAM

    单片机的RAM是非常少的,像新唐,STC,合泰等一些国产的51单片机,RAM 512 byte,1k,2k,非常常见, 有时候我们的串口接收一串数据,或AD连续采集,这些数据是不能放到 flash 里 ...

  4. golang 之 flag

    针对官网对flag 的定义解释一堆,对与我来说看了许久只想获取它的用法时,特意去整理一下.能快速使用并掌握它. 查看flag源码大致定义几下几种格式 //定义一个字符串的变量 type string ...

  5. GO标准库flag

    Go语言内置的flag包实现了命令行参数的解析. os.Args os.Args是一个[]string类型. 获取命令参数示例: func main() { if len(os.Args) > ...

  6. go语言的3个包——strconv、os.Args、flag

    1. strconv包: 2. os.Args: 获取运行程序时给出的参数,可以通过os包来实现.看代码: package main import ( "fmt" "os ...

  7. go包flag系统包简单使用

    一.代码 package main import ( "flag" "fmt" ) //定义命令行参数,这个mode是内存地址,参数1是命令行名称,参数2是命令 ...

  8. Go 每日一库之 flag

    缘起 我一直在想,有什么方式可以让人比较轻易地保持每日学习,持续输出的状态.写博客是一种方式,但不是每天都有想写的,值得写的东西. 有时候一个技术比较复杂,写博客的时候经常会写着写着发现自己的理解有偏 ...

  9. java基础学习03(java基础程序设计)

    java基础程序设计 一.完成的目标 1. 掌握java中的数据类型划分 2. 8种基本数据类型的使用及数据类型转换 3. 位运算.运算符.表达式 4. 判断.循环语句的使用 5. break和con ...

随机推荐

  1. springbatch---->springbatch的使用(二)

    这里我们对springbatch做一个比较深入的学习例子,解压文件,读取文件内容过滤写入到数据库中.如果你掉进了黑暗里,你能做的,不过是静心等待,直到你的双眼适应黑暗. springbatch的使用案 ...

  2. H5 password自动记录取消

    最近完成一个项目时需要取消谷歌浏览器的密码自动填充功能,为了用户方便,大多浏览器都有保存某个网站的密码并在后面再打开这个网站且需要输入密码的时候自动填充.这个功能是方便,但是我们有时候不需要使用这个功 ...

  3. css3整理--border-radius

    1.border-radius 标准: border-top-left-radius: x y // 左上角,x 圆角水平半径, y 圆角垂直半径 border-top-right-radius:x ...

  4. C# 程序自动重启的解决方法

    很多时候,我们有这样的场景,需要让程序自动重启,有很多种方法,比如用微软自带提供的方法,或者自己开辟新的线程重新调用.下面简单介绍两种方法. 方法一. 使用方法Application.Restart( ...

  5. rabbitmq日志记录进出的每条消息

    参考: https://blog.csdn.net/u013256816/article/details/76039201 https://blog.csdn.net/aosica321/articl ...

  6. POJ 1117 Pairs of Integers

    Pairs of Integers Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 4133 Accepted: 1062 Des ...

  7. Linux下应急工具

    Linux下的应急工具 在Linux下,应急的查看点无非那个几个,一是看表现(宕机.高CPU.高内存.高IO.高网络通信),二看连接.三看进程.四看日志.五看文件(Linux一切皆文件),再者结合起来 ...

  8. Nexus网页直接上传jar包

    登陆已经安装好的nexus私有仓库,如图:   点击左边菜单“Repositories”,选择右边列表“3rd party“   点击“3rd party”,选择artifact Upload,如下图 ...

  9. 惠普hp服务器通过iLO接口远程安装操作系统

    我们以hp proliant sl210t的机器为例,我们在配置好iLO接口的远程管理后,我们便可以通过iLO进行操作系统的安装 关于惠普服务器的iLO配置,可参笔者的另一篇文章<关于hp pr ...

  10. CSS 盒子模型 二

    Sublime 快捷键: 文件保存后,输入 html:xt + tab  ,补全html html:xt <!DOCTYPE html PUBLIC "-//W3C//DTD XHTM ...