如何在Swift中增加switch-case /循环中的变量范围?
发布时间:2020-12-14 02:26:48 所属栏目:百科 来源:网络整理
导读:如何使用switch case语句创建在switch-case语句之外有效的变量/常量.如果没有办法做到这一点,我还能做些什么来达到同样的效果,即创建受条件限制的变量,并使其在“全局”或更高范围内可访问? var dogInfo = (3,"Fido")switch dogInfo {case(var age,"wooff")
如何使用switch case语句创建在switch-case语句之外有效的变量/常量.如果没有办法做到这一点,我还能做些什么来达到同样的效果,即创建受条件限制的变量,并使其在“全局”或更高范围内可访问?
var dogInfo = (3,"Fido") switch dogInfo { case(var age,"wooff"): println("My dog Fido is (age) years old") case (3,"Fido"): var matchtrue = 10 --> 10 matchtrue -->10 default: "No match" } matchtrue --> Error: Use of unresolved identifier 'matchtrue' 这是我解决的问题: var randomNumberOne = 0,randomNumberTwo = 0,randomNumberThree = 0 func chosen (#a: Int,#b: Int) -> (randomNumberOne: Int,randomNumberTwo: Int,randomNumberThree: Int){ if a > 0 { let count1 = UInt32(stringArray1.count)-1 let randomNumberOne = Int(arc4random_uniform(count1))+1 } if b > 0 { let count2 = UInt32(stringArray2.count)-1 Output: 3 (from earlier) let randomNumberTwo = Int(arc4random_uniform(count2))+1 Output: 2 } if a > 0 && b > 0 { let count3 = UInt32(stringArray3.count)-1 let randomNumberThree = Int(arc4random_uniform(count3))+1 } return (randomNumberOne,randomNumberTwo,randomNumberThree) } chosen(a:0,b:1) Output: (.00,.12,.20) 太好了,我现在可以用这个数组索引!谢谢!
这里没有魔术. Swift使用块作用域,交换机创建一个新的作用域以防止错误并向程序员显示变量仅在作用域中使用.如果您想使用范围之外的变量 – 在switch子句之外声明这些标识符.
var dogInfo = (3,"Fido") var matchtrue:Int = 0 // whatever you'd like it to default to switch dogInfo { case(var age,"wooff"): println("My dog Fido is (age) years old") case (3,"Fido"): matchtrue = 10 --> 10 matchtrue -->10 default: "No match" } matchtrue --> 10 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |