switch

while switch

北城余情 提交于 2021-01-31 05:43:10
2012年写的代码,还是单机版偏多,很多比较核心的模块代码,写起来后发现软件工程神马的都可以去死了,本质上最最最最有趣的居然就是 while-switch.while表示要不断去做,switch表示状态切换.与while-switch相伴的几个词 是:queue,productor-consumer,thread,try;lock;... [01].win32消息循环,是一个while-switch,是一个典型的productor-consumer;消息就是个队列.消息循环可以嵌套,内层消息循环和外层消息循环都可以去消费message.message并不只属于外层!程序即数据,把消息即ID. [02].分组线程池,可分组的线程池;我们本质上也是做成一个productor-consumer,每个threadpool的 workitemsgroup就是一个productor,每个threadpool的workitemrunner就是一个consumer; [03].服务推送,也是一个while-switch.本地应用while监听服务器消息,switch分发给处理者.自动更新只是一个 consumer行为.进程间通讯,更多的是互相推送和监听.thrift和WCF都对底层实现做了封装.WCF的概念定义比thrift更具学 理:A,B,C.其中A是Adress,通讯的地址

java switch用法

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-10 09:21:19
Java 7中,switch的参数可以是String类型了,这对我们来说是一个很方便的改进。到目前为止switch支持这样几种数据类型:byte short int char String 。switch对String的支持是使用equals()方法和hashcode()方法。 一、switch对整型支持的实现 下面是一段很简单的Java代码,定义一个int型变量a,然后使用switch语句进行判断。执行这段代码输出内容为5,那么我们将下面这段代码反编译,看看他到底是怎么实现的 public class switchDemoInt { public static void main(String[] args) { int a = 5; switch (a) { case 1: System.out.println(1); break; case 5: System.out.println(5); break; default: break; } } } //output 5 反编译后的代码如下: public class switchDemoInt { public switchDemoInt() { } public static void main(String args[]) { int a = 5; switch(a) { case 1: // '\001' System

Java switch 语句使用 String 参数

孤者浪人 提交于 2019-12-10 09:20:47
原文同步至 http://www.waylau.com/java-switch-use-string/ 当我尝试在 switch 语句使用 String 参数时(注意 ctrType 为字符串) switch (ctrType) { case "01" : exceptionType = "读FC参数数据"; break; case "03" : exceptionType = "读FC保存的当前表计数据"; break; default: exceptionType = "未知控制码:"+ctrType; } <!-- more --> 提示如下错误: Cannot switch on a value of type String for source level below 1.7. Only convertible int values or enum variables are permitted 意思是说,我的 jre 本版本太低,不支持。据查 在 Java 7之前,switch 只能支持 byte、short、char、int或者其对应的封装类以及 Enum 类型。在 Java 7中,String支持也终于被加上了。 解决 普通项目 安装 JDK 1.7+,在项目中更改配置引入该 JDK 版本依赖库。 Maven 项目 更改 pom.xml 文件,设置 maven

C++使用模板类实现任意类型switch和变量case

让人想犯罪 __ 提交于 2019-12-09 22:23:19
最近自己维护的一个项目 program_options (是一个命令行生成与解析的C++库)在实际应用的时候遇到一个需求: 需要switch一个字符串来执行相应代码块,然而原生的switch-case条件选择语法针对condition有严格的限制,下面摘录一段switch的语法标准: switch statement Transfers control to one of the several statements, depending on the value of a condition. Syntax attr (optional) switch ( condition ) statement attr (C++11) - any number of attributes condition - any expression of integral or enumeration type, or of a class type contextually implicitly convertible to an integral or enumeration type, or a declaration of a single non-array variable of such type with a brace-or-equals initializer.

Swift讲解专题六——流程控制

泄露秘密 提交于 2019-12-02 00:45:26
Swift讲解专题六——流程控制 一、引言 一种编程语言的强大与否,很大程度上取决于其提供的程序流程控制方案,就如使用汇编语言实现复杂的程序流程是一件痛苦的事情。Swift中提供了许多强大的流程控制语句,例如快速遍历for-in,while循环,repeat-while循环,switch选择等,需要注意的是,在Swift2.2中,for(a;b;c)循环已经被弃用掉,并且Swift中的Switch语句也更加强大,可以处理任意数据类型。 二、for-in循环 配合范围运算符,for-in循环可以用来执行确定次数的循环,示例如下: for index in 1...5 { print(index) } //如果不需要获取循环中每次的循环次数 可以使用如下方式 var sum=0; for _ in 1...3 { sum += 1 } for-in循环也通常会用来遍历数组,字典,集合等,示例如下: var collection1:Array = [1,2,3,4] var collection2:Dictionary = [1:1,2:2,3:4,4:4] var collection3:Set = [1,2,3,4] for obj in collection1 { print(obj) } for (key , value) in collection2 { print(key