草庐IT

any_option

全部标签

swift - Swift 中的 AnyObject 和 Any

我不明白在Swift中何时使用AnyObject以及何时使用Any。在我的例子中,我有一个Dictionary[String:???]???:可以是Int,Double,Float,String,Array,字典谁能给我解释一下Any和AnyObject之间的区别以及在我的案例中使用哪一个。 最佳答案 AnyObject仅适用于引用类型(类),Any适用于值和引用类型。所以你应该选择[String:Any]。TypeCastingforAnyandAnyObjectSwiftprovidestwospecialtypesforwor

ios - fatal error : unexpectedly found nil while unwrapping an Optional values

这个问题在这里已经有了答案:Whatdoes"Fatalerror:UnexpectedlyfoundnilwhileunwrappinganOptionalvalue"mean?(16个答案)关闭6年前。我在Swift中使用了UICollectionView,但是当我尝试更改单元格标签的文本时出现了错误。funccollectionView(collectionView:UICollectionView!,numberOfItemsInSectionsection:Int)->Int{return5}funccollectionView(collectionView:UICollec

ios - 如何在 Swift 中创建 NS_OPTIONS 风格的位掩码枚举?

在Apple关于与CAPI交互的文档中,它们描述了将标记为NS_ENUM的C样式枚举导入为Swift枚举的方式。这是有道理的,因为Swift中的枚举很容易作为enum值类型提供,因此很容易看出如何创建我们自己的枚举。再往下,它是关于NS_OPTIONS标记的C风格选项的:SwiftalsoimportsoptionsmarkedwiththeNS_OPTIONSmacro.Whereasoptionsbehavesimilarlytoimportedenumerations,optionscanalsosupportsomebitwiseoperations,suchas&,|,and

swift - 在 Swift 中为 Optional 提供默认值?

在Swift中处理可选值的习惯用法似乎过于冗长,如果你只想在它为nil的情况下提供一个默认值:ifletvalue=optionalValue{//dosomethingwith'value'}else{//dothesamethingwithyourdefaultvalue}这涉及不必要的重复代码,或者varunwrappedValueifletvalue=optionalValue{unwrappedValue=value}else{unwrappedValue=defaultValue}这要求unwrappedValue不是常量。Scala的Optionmonad(与Swift的

c# - 面试题: . Any() vs if (.Length > 0) 测试集合是否有元素

在最近的一次采访中,有人问我.Any()和.Length>0之间的区别是什么,以及为什么我会在测试时使用其中一个来查看是否集合有元素。这让我有点震惊,因为它看起来有点明显,但我觉得我可能遗漏了什么。我建议您在只需要知道集合包含元素时使用.Length,在希望过滤结果时使用.Any()。大概.Any()也会受到性能影响,因为它必须在内部执行循环/查询。 最佳答案 Length仅存在于某些集合类型中,例如Array.Any是一种扩展方法,可用于任何实现IEnumerable的集合.如果Length存在则可以使用它,否则使用Any.Pre

c# - 自反类型参数约束 : X<T> where T : X<T> ‒ any simpler alternatives?

我经常通过向其添加自引用(“自反”)类型参数约束来使一个简单的接口(interface)变得更加复杂。例如,我可能会这样:interfaceICloneable{ICloneableClone();}classSheep:ICloneable{ICloneableClone(){…}}//^^^^^^^^^^Sheepdolly=newSheep().Clone()asSheep;//^^^^^^^^进入:interfaceICloneablewhereTImpl:ICloneable{TImplClone();}classSheep:ICloneable{SheepClone(){…

c# - 是否使用 "Optional, DefaultParameterValue"属性?

使用Optional和DefaultParameterValue属性与不使用它们有什么区别吗?publicvoidTest1([Optional,DefaultParameterValue("param1")]stringp1,[Optional,DefaultParameterValue("param2")]stringp2){}publicvoidTest2(stringp1="param1",stringp2="param2"){}两者都有效:Test1(p2:"aaa");Test2(p2:"aaa"); 最佳答案 它们的编

C#:对于空列表,Any() 与 Count()

Aquestion早先发布让我思考。Any()和Count()在空列表上使用时是否表现相似?如解释here,两者都应该经过GetEnumerator()/MoveNext()/Dispose()的相同步骤。我使用LINQPad上的快速程序对此进行了测试:staticvoidMain(){varlist=newList();Stopwatchstopwatch=newStopwatch();stopwatch.Start();for(inti=0;i一般结果似乎表明Count()在这种情况下更快。这是为什么?我不确定我的基准测试是否正确,如果不正确,我将不胜感激。编辑:我知道这在语义上更

c# - C# 4.0 的新功能 - "Optional Parameters"CLS 兼容吗?

这个新功能真的很方便。最近看了《MicrosoftAll-In-OneCodeFramework》的文档,里面提到“OptionalParameters”不符合CLS。所以我通过在公共(public)API中使用“可选参数”对其进行了测试,并打开了FxCop,然后我进行了编译,FxCop没有提示任何事情。与此同时,当我添加一个返回类型为uint的API时,FxCop确实报告了一个警告。所以现在我很困惑,“可选参数”是否符合CLS?确定新语言功能是否符合CLS的最佳方法是什么? 最佳答案 可选参数“有点”符合CLS。带有可选参数的方法

c# - 是否通过对象初始化设置属性 : Any difference ?

这是一个简单的问题:这之间是否有任何(性能)​​差异:Personperson=newPerson(){Name="Philippe",Mail="phil@phil.com",};还有这个Personperson=newPerson();person.Name="Philippe";person.Mail="phil@phil.com";您可以想象具有更多属性的更大对象。 最佳答案 除了第一种方法(使用objectinitializer)仅适用于C#3.0及更新版本之外,它们几乎完全相同。任何性能差异都很小,不值得担心。它们生成几