OC与Swift的区别三(条件语句)
2015-03-30 21:58
267 查看
11.swift中的switch结构
区别一:
oc中switch条件只可以放整数
swift中switch条件可以放几乎任何数据类型
区别二:
oc中每一个case中应有break,如果没有break,则会继续向下贯穿执行case直到碰见break跳出switch结构
swift中不需要在case分支最后添加break语句,该case分支执行完成后,会跳出switch结构
区别三:
oc中不是每个case后面必须有可执行语句,如果某个case分支中没有可执行语句和break,则该分支将会执行其下面最近的一个有可执行语句的分支中代码,以此实现多条件匹配
swift中每个case后面必须都有可执行语句,
ps:此区别是因为区别二的存在,swift中表示多条件匹配的情况使用的语法为,case后跟多个条件,用逗号隔开。
此外,swift的case中可以填写一个范围作为匹配条件,如case a...b:
区别三:
oc中switch中default不是必需的
swift中switch中default是必需的
swift中switch语句可以使用where来增加判断条件
如:
var point = (10,-10)
switch point{
case let(x,y) where x == y :
//
case let(x,y) where x == -y :
//
default :
//
}
swift中switch语句可以使用fallthrough关键字来执行贯穿操作,即执行完当前case后,会接着执行fallthrough后面的case活着default语句,类似于oc中case没有写break语句,但是使用了fallthrough,其后面的case条件中将不能定义常量或变量,即fallthrough后面的case条件不能使用类似上面代码中let (x,y) 这样的变量来接收point,否则会有语法错误。
区别一:
oc中switch条件只可以放整数
swift中switch条件可以放几乎任何数据类型
区别二:
oc中每一个case中应有break,如果没有break,则会继续向下贯穿执行case直到碰见break跳出switch结构
swift中不需要在case分支最后添加break语句,该case分支执行完成后,会跳出switch结构
区别三:
oc中不是每个case后面必须有可执行语句,如果某个case分支中没有可执行语句和break,则该分支将会执行其下面最近的一个有可执行语句的分支中代码,以此实现多条件匹配
swift中每个case后面必须都有可执行语句,
ps:此区别是因为区别二的存在,swift中表示多条件匹配的情况使用的语法为,case后跟多个条件,用逗号隔开。
此外,swift的case中可以填写一个范围作为匹配条件,如case a...b:
区别三:
oc中switch中default不是必需的
swift中switch中default是必需的
swift中switch语句可以使用where来增加判断条件
如:
var point = (10,-10)
switch point{
case let(x,y) where x == y :
//
case let(x,y) where x == -y :
//
default :
//
}
swift中switch语句可以使用fallthrough关键字来执行贯穿操作,即执行完当前case后,会接着执行fallthrough后面的case活着default语句,类似于oc中case没有写break语句,但是使用了fallthrough,其后面的case条件中将不能定义常量或变量,即fallthrough后面的case条件不能使用类似上面代码中let (x,y) 这样的变量来接收point,否则会有语法错误。
相关文章推荐
- OC与Swift的区别四(条件语句)
- 软件测试中条件覆盖,路径覆盖,语句覆盖,分支覆盖的区别
- addTarget事件添加方法在OC和Swift中的区别
- swift中的条件语句
- 条件语句中 字段= 值 和 值=字段 有什么区别
- Vickate_Swift2.0的方法总结 及 与C/OC的语法区别
- Swift笔记:For-In、While 循环、if条件语句
- SQL优化 查询语句中,用 inner join 作为过滤条件和用where作为过滤条件的区别
- Swift和OC的区别(基于Swift3.0)
- Swift与OC区别
- mysql group by内排序的实现以及having和where 条件语句查询的区别
- swift中的条件语句
- Swift与OC语言中语法的一些区别
- 关于oc的#pragma mark - 和swift的注释的详解和区别
- 浅谈Swift和OC的区别
- 软件测试中条件覆盖,路径覆盖,语句覆盖,分支覆盖的区别
- Swift4.0 学习笔记 第二十六节:Swift中懒加载和OC的区别
- 软件测试中条件覆盖,路径覆盖,语句覆盖,分支覆盖的区别
- sas条件判断语句where,if的区别,以及where选项
- OC与Swift的区别一(文件结构)