草庐IT

test_cases

全部标签

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

Xcode 7 : Can't create a Swift command line tool with a unit test target

哦,Xcode!我被困住了。如果我创建一个MacOSCocoa应用程序,我将免费获得一个单元测试目标。但我想编写一个命令行工具(或者甚至是一个我可以链接到命令行工具的库)并针对它编写一些单元测试。如果我能弄清楚,我会被诅咒的。我已经足够深入了,我有一个命令行目标和一个测试目标。我可以“@testableimport”我的命令行模块并使用测试代码中的代码,而在Xcode中没有错误。但是,一旦我尝试运行我的测试(Cmd-U),我就会收到链接错误。主模块中的所有类都不能链接。什么?几个小时以来我一直在搞乱这个问题,而GreatGoogle没有任何帮助。(我使用的是Xcode7,Xcode6看

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

unit-testing - 在 Swift 中模拟

如何在Swift中模拟一个对象?Mirror协议(protocol)听起来很有前途,但目前效果不佳。到目前为止,我发现的唯一方法是子类化并覆盖模拟类的所有方法。这当然不是真正的模拟,远非理想,并且需要大量工作。还有其他想法吗?为什么不用OCMock?来自source:CanIuseOCMockusingthelanguagebridgefunctionality?Yes,butwithlimitations.Ifyouarebrave.Asofnowthisishighlyexperimental.There'snoguaranteethatOCMockwilleverfullysup

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# - 为什么 "Func<bool> test = value ? F: F"不编译?

我看到过类似的问题,但是它们涉及不同的类型,所以我认为这是一个新问题。考虑以下代码:publicvoidTest(boolvalue){//Thefollowinglineprovokesacompilererror://"Typeofconditionalexpressioncannotbedeterminedbecausethereis//noimplicitconversionbetween'methodgroup'and'methodgroup".Functest=value?F:F;}publicboolF(){returnfalse;}现在,根据C#3.0标准,Thesec

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

c# - 如何在子类的工厂方法中避免 switch-case

假设我们有一组类(卡片,为了它),我们需要根据一些标识符来实例化它们。工厂方法看起来像这样:publicCardGetCard(intcardNumber){switch(cardNumber){case13:returnnewKing();case12:returnnewQueen();case11:returnnewJack();}//...}我想要的是避免这个开关。为什么?也许我想在功能中重用这个比较。我想出的是这样的:privateDictionarycardTypes={{13,typeof(King)},{12,typeof(Queen)},{11,typeof(Jack)