草庐IT

case-statement

全部标签

ios - Swift 良好编码实践 : If statement with optional type Bool

所以我一直在用Swift开发一个应用程序,今天我花了将近一个小时来调试一个问题,结果证明这是完全出乎意料的。这一切都源于下面的代码。if(hero.isAI){//isAIisaBool}问题是这个if语句总是返回true。所以我想也许我在某处将isAI设置为true但最后我意识到我将isAI声明为可选类型,如下所示。varisAI:Bool!应该是什么时候varisAI:Bool这导致if语句不检查isAI是否为真,而是检查它是否包含一个值。所以现在为了安全起见,我一定要像这样写我的if语句if(hero.isAI==true){//isAIisaBool}所以我的问题是,将来我有什

swift - case 在 if-case 中是如何工作的

老C程序员可以在Swift方面得到一些帮助。我不太了解if-case语法。例如:ifcase20...30=age{print("inrange.")}case20...30=age似乎是if语句的条件测试。因此,最初看到使用赋值运算符('=')而不是比较运算符('==')时,我感到很困惑。好吧,我心想,这可能意味着case语句实际上是一个返回bool值的函数调用。返回值将满足if语句中的比较测试。作为实验,我尝试将case语句视为常规条件测试,并在其两边放置括号。Swift会很乐意接受if(x==5)或if(true)。但是if(case20...30=age)会产生错误。所以cas

if-statement - Swift 'If' 语句的多个条件?

有没有办法在Swift中编写如下的If语句?ifa>borc/d{//DoSomething} 最佳答案 无处不在:ifa>b||d%c==0{//dosth}我假设您的c/d意味着您希望d是c的倍数。 关于if-statement-Swift'If'语句的多个条件?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/27463150/

swift - 有没有办法将 `if case` 语句写成表达式?

考虑这段代码:enumType{caseFoo(Int)caseBar(Int)varisBar:Bool{ifcase.Bar=self{returntrue}else{returnfalse}}}太恶心了。我想写这样的东西:enumType{caseFoo(Int)caseBar(Int)varisBar:Bool{returncase.Bar=self}}但是这样的构造在Swift中似乎不存在,或者我找不到。由于每个案例都有相关数据,我认为不可能以与上述表达式等效的方式实现~=运算符(或任何其他助手)。在任何情况下,ifcase语句对于所有枚举都是免费存在的,不需要手动实现。因此

swift - 如何在 Swift case 语句中分配变量

这有效但似乎效率低下:switchvar1{case1:string1="hello"case2:string1="there"default:string1="world"}但是string1=switchvar1{...抛出一个错误。是否有更有效的方式来编写switch/case,以便分配的变量不会在每一行中冗余列出?提前致谢! 最佳答案 如果您只在一个地方使用该代码,请将开关放在一个匿名闭包中。string1={switchvar1{case1:return"hello"case2:return"there"default:r

swift - 修复 Swift 3 中的警告 "C-style for Statement is deprecated"

我已将Xcode更新到7.3,现在我对用于创建随机字符串的函数发出警告。我试图用for更改for(iin0..语句,但是警告变成了错误。如何删除警告?staticfuncrandomStringWithLength(len:Int)->NSString{letletters:NSString="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"letrandomString:NSMutableString=NSMutableString(capacity:len)for(vari=0;i

if-statement - 在 Swift 中的 if 语句中使用多个 let-as

我正在从字典中解包两个值,在使用它们之前我必须转换它们并测试正确的类型。这是我想出的:varlatitude:AnyObject!=imageDictionary["latitude"]varlongitude:AnyObject!=imageDictionary["longitude"]ifletlatitudeDouble=latitudeas?Double{ifletlongitudeDouble=longitudeas?Double{//dostuffhere}}但我想将两个iflet查询合二为一。所以它会是这样的:ifletlatitudeDouble=latitudeas?

c# - 在 case 语句中检测到无法访问的代码

我有一个代码:protectedoverrideboolProcessCmdKey(refMessagemsg,KeyskeyData){switch(keyData){caseKeys.Alt|Keys.D1:if(this._condition1){returntrue;}else{returnbase.ProcessCmdKey(refmsg,keyData);}break;caseKeys.Control|Keys.U:if(this._condition2){returntrue;}else{returnbase.ProcessCmdKey(refmsg,keyData);}

c# - 如何在类型上使用 switch-case?

这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:Isthereabetteralternativethanthisto'switchontype'?我需要遍历我的类的所有属性并检查它的int类型是否需要做某事,如果它的字符串..然后做某事。我需要它使用开关盒。在这里,我按以下方式使用switch,但它需要一些常量。看下面的代码:publicstaticboolValidateProperties(objecto){if(o!=null){varsourceType=o.GetType();varproperties=sourceType.GetPropert

c# - 嵌套泛型 : Why can't the compiler infer the type arguments in this case?

当我遇到一个我不理解的类型推断错误时,我正在玩一个业余项目。我已将其简化为以下简单示例。我有以下类和函数:classFoo{}classBar{}classBaz{}staticT2F(Funcf){returndefault(T2);}staticT3G(Func>f){returndefault(T3);}现在考虑以下示例://1.Fwithexplicittypearguments-FineF(x=>newBar());//2.Fwithimplicittypearguments-Alsofine,compilerinfersF((Foox)=>newBar());//3.Gwi