整理单个 if 条件的使用方法
发布时间:2020-12-14 06:44:13 所属栏目:百科 来源:网络整理
导读:作者:Erica Sadun,原文链接,原文日期:2016-08-05 译者:粉红星云;校对:千叶知风;定稿:CMB 发现自己有一个编程习惯,正在努力让自己戒掉,这个习惯是像下面这样的: switch something { 把一些复杂的绑定值定义到 case 中 case: // ...用绑定值做一些
发现自己有一个编程习惯,正在努力让自己戒掉,这个习惯是像下面这样的: 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 } } } 我尝试打破这个模式是因为有个更简单的方式来实现,那就是用 经过重构后,产生了下面简化后的代码,使所有的绑定和与 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) } } 在很多情况下,我通常会鼓励自己使用
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |