jjzjj

Optionals

全部标签

java - 有没有一种优雅的方法来打开包裹在 2 个嵌套的 Optionals 中的对象?

考虑这两个类classEmailService{publicOptionalgetEmailAlias(Stringemail);}enumQueue{publicstaticOptionalfromEmailAlias(Stringalias);}上述方法的实现对问题并不重要,因此为了简单起见,我将其省略。我想这样做:emailService.getEmailAlias("john@done").map(Queue::fromEmailAlias).ifPresent(queue->{//dosomethingwiththequeueinstance,ohwaitit'sanOpti

java - 我们可以在 Android 编程中使用 Optionals 吗?

我一直在阅读Java8中的Optional类型。我想在我的一些Android代码中实现。但是最新版本的Android(5.1和6)的Dalvik机器是否实现了Java8中的所有功能?我仍在运行Java7,并在我的计算机上安装了Eclipse和AndroidStudio。 最佳答案 您可以使用StreamSupportlib添加了对新StreamsAPI的支持,作为副作用,它具有可选。对于gradle使用:compile"net.sourceforge.streamsupport:streamsupport:1.5.1"

swift - 使用泛型的 Optionals 的覆盖/运算符导致无限循环

让我们看一下下面的代码片段:func/(lhs:T?,rhs:T?)throws->T?{switch(lhs,rhs){caselet(l?,r?):returntryl/rdefault:returnnil}}letx:Double?=2lety:Double?=2letz=try!x/y我创建了一个需要两个可选参数的通用函数。如果我运行这段代码,它会导致无限循环,因为tryl/r使用func/(lhs:T?,rhs:T?)划分值。谁能解释为什么将两个非可选double值相除会导致对我编写的方法的函数调用,而不是Double的默认/运算符定义?如果我通过一个扩展来扩展Double,

ios - Swift Optionals - 不同的解包方式

我马上开始:有什么区别:vartest:String?test="thisisanoptionalstring"iftest!=nil{println("\(test!)ISNOTnil")}else{println("testisnil")}和iflettest=test{println("\(test)ISNOTnil")}else{println("testisnil")}两者在playground中输出相同的结果。我知道隐式展开不被认为是安全的(在大多数情况下)但是,在这里我在展开之前检查值是否为nil?这两种方法都有效吗?是否存在不同的情况,其中一种被认为是更好的选择?

快速编译错误: Downcast from 'String?!' to 'String' only unwraps optionals; did you mean to use '!!' ?

升级到cocoapods1.0后,我得到以下代码行的编译错误:varstrName=String()varstrEmail=String()varstrFacebookID=String()varstrPassword=String()varobjHelper=Helper()....letstrFirstName=result["first_name"]as!StringletstrLastName=result["last_name"]as!Stringself.strName=strFirstName+"_"+strLastNameself.strEmail=result["em

swift - Swift 中可选值的用途是什么?

这个问题在这里已经有了答案:WhatisanoptionalvalueinSwift?(15个答案)关闭5年前。所以我最近一直在学习Swift(3.1),但我在理解可选值的目的/实际用法方面遇到了问题。我研究了几个网站,他们谈论的只是如何使用它们,而不是为什么或何时使用它们(有点为什么,但不是以一种似乎适用于我的方式)。我的引文在最后。我了解它是nil还是值,以及您需要如何使用!解包它的可能值,以及如何创建自动解包选项。我的主要问题只是,可选项的实际用途是什么?Apple的Swift手册说可选值是Swift大部分最强大功能的中心点,所以我觉得这是一个非常值得充分理解的概念。我完全理解如

json - 在 Swift 中检查 Optionals 是否为 nil

如何在Swift中检查Optionals的nil值?我正在尝试评估解析JSON是否成功。当传递无效的json时,这应该打印一条错误消息,但失败并返回EXC_BAD_INSTRUCTION。funcparseJson(data:NSData){varerror:NSError?varjson:NSDictionary=NSJSONSerialization.JSONObjectWithData(data,options:NSJSONReadingOptions.MutableContainers,error:&error)asNSDictionaryifleterr=error{prin

arrays - 计算 Int Optionals 数组中空值的数量

我刚刚开始使用Swift并使用可选项。使用generateRandomArrayOfIntsAndNils()后努力计算测试数组中的nils数这是我要采用的方法:letarray1:[Int?]array1=generateRandomArrayOfIntsAndNils()\vartotal=0foriinarray1{if(array1[i]==nil){total+=1}}print(total)如有任何建议或指导,我们将不胜感激。 最佳答案 你可以这样做:letcountNils=array1.filter({$0==nil

swift - Swift 或其他语言中 Optionals 的术语

在Swift中,我们操作的元素都有类型。当我们使用这些类型时,我们可以添加“!”、“?”或无来表达它们的可空性。我应该怎么称呼“?”或“!”来表达这种特质?类型装饰器?装饰师?运算符(operator)?还有别的吗?我应该如何称呼使用这个字符时创建的类型?它是一种新类型吗?它是装饰型的吗?类型变体?swift编译器似乎将它们视为新类型,但是我的问题与实现或语言无关,因此我将其标记为与语言无关。编辑:我正在寻找一个与语言无关的名称。我了解到pranjalsatija的注释选项被定义为复合类型。但是,这是一个语言实现细节。我可以将我的问题改写为:类型定义中有特殊含义的字符怎么称呼,派生类型

ios - Swift Optionals - 不一致?

我有点困惑——我以为我了解Optionals并且在Apple开发论坛ChrisL上提到了解决不可变Optional问题的一个方法是为可选值类型创建一个类包装器。-link!但是以UIWindow(具有各种属性的可选类类型)为例使用可选链,属性似乎仍然不可变!varwindow:UIWindow?//thisworks(forceunwrap)self.window!.backgroundColor=UIColor.greenColor()//thisoptionalchaindoesn'twork...whynot?Isn'tthisjustasaferversionoftheabov