ios – swift switch语句包含不同的共享内容

ios – swift switch语句包含不同的共享内容,第1张

概述我有这样的代码 switch thing { case thisThing: do thing #1 do thing #2 case thatThing: do thing #2 do thing #3 case anotherThing: do thing #4 default: default} 因此,每种情况都只 我有这样的代码

switch thing {  case thisThing:     do thing #1     do thing #2  case thatThing:     do thing #2     do thing #3  case anotherThing:     do thing #4  default:     default}

因此,每种情况都只有它能做到的事情.有些案例也与一个或多个其他案件做同样的事情.

如果我不想要任何重复的代码,有没有办法实现这一目标?

或者,有没有一个更有效的方法来做这个没有开关语句?我的意思是,我可以,例如,我可以使用if语句,但是像switch语句一样,我想不出一种方法来实现我想要的而不使用重复代码.

此外,这个例子可能比上面更清楚

myFavoriteNumbers = []myLeastFavoriteNumbers = []switch myNumber {case 1:  print("my number is number 1") // do this only for case 1  myFavoriteNumbers += [1] // do this for case 1 and case 2case 2:  print("this is number 2") // do this only for case 2  myFavoriteNumbers += [2] // do this for case 1 and case 2case 3:  print("I don't like number 3") // do this only for case 3  myLeastFavoriteNumbers += [3] // do this for case 3 and case 4case 4:  print("Number Four") // do this only for case 4  myLeastFavoriteNumbers += [4] // do this for case 3 and case 4default:  print("Default")}
解决方法 您可以使用初始单独的模式匹配语句(与独立于switch语句的单个案例相比),该语句涵盖对任何(有效)数字唯一的 *** 作,并让switch语句跟随处理常见 *** 作的情况几个数字.通过这种方式,您可以分离唯一和通用的逻辑 *** 作,后者只是作为任何模式匹配交换机实现的通常情况实现.

例如,为您的例子

var myFavoriteNumbers: [Int] = []var myLeastFavoriteNumbers: [Int] = []let myNumberDescriptions = ["my number is number 1","this is number 2","I don't like number 3","Number Four"]let myNumber = 1/* unique action:    perform a unique action (given a valID number)    and thereafter proceed to common cases */if 1...myNumberDescriptions.count ~= myNumber {    print(myNumberDescriptions[myNumber-1])}/* common cases */switch myNumber {/* common case: is a favourite number */case 1...2: myFavoriteNumbers += [myNumber]/* common case: is a least favourite number */case 3...4: myLeastFavoriteNumbers += [myNumber]default:    print("Default")}

如果对任何数字唯一的动作更复杂,则使用与上面相同的方法,但对于唯一动作“case”使用更高级的逻辑(例如,事件处理程序).

总结

以上是内存溢出为你收集整理的ios – swift switch语句包含不同的共享内容全部内容,希望文章能够帮你解决ios – swift switch语句包含不同的共享内容所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1072988.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存