大佬教程收集整理的这篇文章主要介绍了整理单个 if 条件的使用方法,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
发现自己有一个编程习惯,正在努力让自己戒掉,这个习惯是像下面这样的:
switch something { 把一些复杂的绑定值定义到 case 中 case: // ...用绑定值做一些事 default: break }
这里有个真实的例子:
enum Tree<T> { case empty indirect case node(value: T,left: Tree<T>,right: Tree<T>) func show(indent: Int = 0) { switch self { case let .node(value: value,left: left,right: right): print(String(repeaTing: " " as Character,count: indent),value) right.show(indent: indent + 4) left.show(indent: indent + 4) default: break } } }
我尝试打破这个模式是因为有个更简单的方式来实现,那就是用 if case
来代替 switch
。只有一种 case 需要考虑,默认情况下不需要做任何操作。
经过重构后,产生了下面简化后的代码,使所有的绑定和与 .node
相关的行为产生关联,来被压缩放置到一起。
enum Tree<T> { case empty indirect case node(value: T,right: Tree<T>) func show(indent: Int = 0) { if case let .node(value: v,left: l,right: r) = self { print(String(repeaTing: " " as Character,v) r.show(indent: indent + 4) l.show(indent: indent + 4) } }
在很多情况下,我通常会鼓励自己使用 switch
或是 guard
,而不是 if
来明确我的意图并增加可读性,但是在这个例子上最好还是用回经典的 if 吧。
以上是大佬教程为你收集整理的整理单个 if 条件的使用方法全部内容,希望文章能够帮你解决整理单个 if 条件的使用方法所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。