草庐IT

enable_if_c

全部标签

ios - if-let 语句不解包可选

我在我的代码中遇到了一些看起来很奇怪的东西,想知道是否有针对这种行为的直接解释。给出以下语句:iflettabBarController=topViewControlleras?UITabBarController{forsubcontrollerintabBarController.viewControllers!{println(subcontroller.view)ifletsubcontrollerView=subcontroller.view{println(subcontrollerView)println(subcontrollerView!)ifsubcontrolle

swift - 有没有办法使用相同的变量名链接多个 if-let 语句?

假设我有三个可选字符串,string1、string2和string3。我不知道哪个(如果有的话)不是nil所以我正在使用if-let语句,然后我想用那个非nilString做一些事情,不管这是其中的一个。现在,这在Swift中有效,但很麻烦:ifletnewString=string1{doSomething()}elseifletnewString=string2{doSomething()}elseifletnewString=string3{doSomething()}我可以做类似的事情吗(这会给我一个错误):ifletnewString=string1||letnewStri

ios - if let 在显式指定类型时表现得很奇怪

假设我们有:leta:Int?=nil//blocknotexecuted-unwappingdone,typeisinferredifletunwrapped_a=a{println(unwrapped_a)}//blocknotexecuted-unwrappingdone,typeisspecifiedifletunwrapped_a:Int=a{println(unwrapped_a)}//blockgetsexecuted-unwrappingnotdone,newlocalconstant+assignmentisdoneinstead?ifletnot_unwrapped

ios - 使用 'if let' 在 swift 'where' 中仅处理其他条件

我有一个逻辑条件:ifletlogin=loginwherevalidateLogin(login){//I'mnotinterestedinthiscondition}else{//Thisisinteresting}是否有任何选项可以以某种方式编写ifletconditiontonothandletruecondition(因为我不想对此做任何事情)?所以,类似否定的东西:!(ifletlogin=loginwherevalidateLogin(login)){//Thisisinteresting}感谢您的帮助。 最佳答案 在

swift - guard 语句和 if...else 语句之间的基本区别是什么?

这个问题在这里已经有了答案:Swift'sguardkeyword(13个答案)关闭6年前。我对何时使用guard以及何时使用if...else感到困惑。guard是If语句的替代品还是替代品?主要想知道guard语句对Swift语言有什么功能上的好处?我们将不胜感激任何有助于消除这种情况的帮助。

swift: if-let 并行赋值

我正在尝试使用多个值创建一个简单的if-let语句。ifblock只有在所有可选变量都不是nil时才应该执行,而且它们应该被分配给只存在于if中的新的let-vars(常量?)>block,就像普通的单赋值if-let。vara:String?="A"varb:String?//niliflet(m,n)=(a,b){println("m:\(m),n:\(n)")}else{println("toobad")}//error:BoundvalueinaconditionalbindingmustbeofOptionaltype//thisofcourseisbecausethetup

swift - 如何在 swift 中使用 if 语句检查枚举?

这个问题在这里已经有了答案:Compilererrorwhencomparingvaluesofenumtypewithassociatedvalues?(2个答案)关闭6年前。今天我正在编写一个应用程序,它需要将一些Double更正为一些有效数字/数字(sigfig)。用户可以设置编号。要转换为的信号图。我将这条信息存储在NSUserDefaults中。我创建了一个枚举来表示这些设置,因为我想让我的代码更具可读性,而不仅仅是普通的旧整数。这是枚举:enumSigFigOptions{caseNocaseYes(Int)}如果是.No,数字将是准确的。如果是.Yes,数字将被更正。并且

swift 2.0 : Parametrized classes don't call proper == function if it inherits from class that is Equatable

当参数化类继承自另一个符合Equatable的类时,==调用父类(superclass)的==。谁能解释为什么会这样和/或我怎么可能在这里做错了什么?我相信一个例子最能说明我的问题:publicclassFoo:Equatable{}publicfunc==(lhs:Foo,rhs:Foo)->Bool{returnfalse}//ParametrizedpublicclassBar:Foo{publicvarbar:T?publicinit(barIn:T?){self.bar=barIn}}publicfunc==(lhs:Bar,rhs:Bar)->Bool{returnlhs.

swift - 在 switch 语句中使用 if let 语法

在swift中,iflet语法允许我仅在变量属于特定类型时才执行语句。例如classA{...}classB:A{...}classC:A{...}funcfoo(thing:A){ifletb=thingas?B{//dosomething}elseifletc=thingas?C{//dosomethingelse}}是否可以通过switch语句来实现?我已经讲到这里了,但是变量b和c仍然是A类型,没有转换为B和C:funcfoo(thing:A){switchthing{caseletbwherebisB://dosomethingcaseletcwherecisC://doso

java - 在 if 语句中使用按位 &

在C中,我可以写一个if语句if(firstInt&1)但是当我尝试在Java中做同样的事情时,编译器告诉我“不兼容的类型”并说我需要一个boolean而不是int。有没有办法用Java编写该C代码? 最佳答案 以下任何一项都适合您:if((firstInt&1)!=0)if((firstInt&1)>0)if((firstInt&1)==1) 关于java-在if语句中使用按位&,我们在StackOverflow上找到一个类似的问题: https://sta