标签: optional-values

(可选)将项添加到Scala Map

我正在寻找这个问题的惯用解决方案.

我正在构建一个valScala(不可变)地图,并希望可选择添加一个或多个项目:

val aMap =
  Map(key1 -> value1,
      key2 -> value2,
      (if (condition) (key3 -> value3) else ???))
Run Code Online (Sandbox Code Playgroud)

如何在不使用var?的情况下完成?什么应该取代????使用+运营商更好吗?

val aMap =
  Map(key1 -> value1,
      key2 -> value2) +
  (if (condition) (key3 -> value3) else ???))
Run Code Online (Sandbox Code Playgroud)

一种可能的解决方案是

val aMap =
  Map(key1 -> value1,
      key2 -> value2,
      (if (condition) (key3 -> value3) else (null, null))).filter {
        case (k, v) => k != null && v != null
      }
Run Code Online (Sandbox Code Playgroud)

这是最好的方法吗?

scala immutability optional-values

27
推荐指数
3
解决办法
9234
查看次数

双重感叹!! 在斯威夫特?

我知道单个感叹号的定义,但两个?

我今天正在编码,编译器"强迫"我再添加一个!我的句子:

mySignal.subscribeNext({
        (value: AnyObject!) -> () in
        let list: RACSequence = value["myObject"]!!.rac_sequence
        ...
Run Code Online (Sandbox Code Playgroud)

如果我只使用一个!mark,项目没有编译,给我错误:"可选类型的值'AnyObject?' 没打开;你的意思是用'!' 要么 '?'?" 然后我再添加一个!一切正常.

Swift中两个感叹号的含义是什么?

ios optional-values swift

16
推荐指数
2
解决办法
2714
查看次数

我如何获得相互依赖的选择?

我想做点什么

foo[OptionsPattern[]] := OptionValue[b]
Options[foo] = {a -> 0, b :> OptionValue[a]};
foo[a -> 1]
Run Code Online (Sandbox Code Playgroud)

让Mathematica给我1,而不是0.有没有更好的方法来做到这一点

foo[OptionsPattern[]] := (
  Options[foo] = {a -> 0, b :> OptionValue[a]};
  OptionValue[b]
)
foo[a -> 1]
Run Code Online (Sandbox Code Playgroud)

首先,foo在每次调用时设置选项都是低效的,特别是如果foo有很多选项的话.

wolfram-mathematica options optional-parameters optional-values

8
推荐指数
1
解决办法
159
查看次数

swift:if-let并行赋值

我正在尝试使用多个值创建一个简单的if-let语句.if只有当所有可选变量都是非零时,才应执行该块,并且应将它们分配给仅存在于if块内的新let-vars(常量?),就像正常的单赋值if-let一样.

var a: String? = "A"
var b: String? // nil

if let (m, n) = (a, b) {
    println("m: \(m), n: \(n)")
} else {
    println("too bad")
}
// error: Bound value in a conditional binding must be of Optional type
// this of course is because the tuple itself is not an Optional
// let's try that to be sure that's the problem...

let mysteryTuple: (String?, String?)? = (a, b)
if let (m, n) …
Run Code Online (Sandbox Code Playgroud)

tuples parallel-assignment optional-values swift swift-playground

6
推荐指数
2
解决办法
7599
查看次数

下调“ Any”时出现Swift错误

以下代码几乎是Apple Documentation的精确复制品,编译时没有错误:

guard let firstItem = (rawItems! as? Array<Dictionary<String, Any>>)?.first else {
    throw AnError()
}

let identityRef = firstItem[kSecImportItemIdentity as String] 
               as! SecIdentity?   // !!!

guard let identity = identityRef else {
    throw AnError()
}
Run Code Online (Sandbox Code Playgroud)

标有的行!!!包含强制向下转换,而替换as!as显然会导致编译错误'Any?' is not convertible to 'SecIdentity?'...确实SecIdentity是一个类,Any甚至可能不是一个类。

我真正无法解释的是以下内容。如果我尝试使代码更安全,请使用此

guard let idenity = firstItem[kSecImportItemIdentity as String] as? SecIdentity
else {
    throw AnError()
}
Run Code Online (Sandbox Code Playgroud)

或这个

guard let idenityRef = firstItem[kSecImportItemIdentity as String] as? SecIdentity? …
Run Code Online (Sandbox Code Playgroud)

downcast optional-values swift

5
推荐指数
1
解决办法
226
查看次数

测试"nil"和".None"的可选项有什么区别?

我用快速的语言随处可见,人们使用if语句测试可选值,以便他们可以通过两种方式安全地强制解包:

if optionalValue != .None {   

... some code ...

}
Run Code Online (Sandbox Code Playgroud)

要么

if optionalValue != nil {   

... some code ...

}
Run Code Online (Sandbox Code Playgroud)

有什么区别,它能以某种方式以某种方式影响我的应用程序/代码吗?什么更好?

ios optional-values swift

3
推荐指数
1
解决办法
2303
查看次数

传入值的函数参数的默认值为nil

是否有一种简洁的方法来组合默认函数参数值和选项,因此当在函数调用中指定参数时,参数采用提供的默认值,但它的值是否为零?

例如:

class MyObj {

    var foobar:String

    init(foo: String?="hello") {
        self.foobar = foo!
    }
}

let myObj = MyObj() // standard use of default values - don't supply a value at all

println(myObj.foobar) // prints "hello" as expected when parameter value is not supplied

var jimbob: String? // defaults to nil

...

// supply a value, but it is nil
let myObj2 = MyObj(foo: jimbob) // <<< this crashes with EXC_BAD_INSTRUCTION due to forced unwrap of nil value

println(myObj2.foobar)
Run Code Online (Sandbox Code Playgroud)

...或者是给成员常量/变量默认值的最佳选择,然后只有在为构造函数提供值时才更改它们,如下所示: …

default-parameters optional-values swift

3
推荐指数
1
解决办法
4505
查看次数

fetchedResultsController核心数据致命错误:在展开Optional值时意外发现nil

我知道有相同错误的无数问题,但没有一个解决方案似乎有效.

我想制作一个博客阅读器应用程序,用于保存和获取CoreData中的数据.我能够在JSON结果保存到CoreData,但是当我尝试找回它TableView中显示,它崩溃fatal error: unexpectedly found nil while unwrapping an Optional value上线

let entity = NSEntityDescription.entityForName("Blog", inManagedObjectContext:self.managedObjectContext!)

这是我的代码:

import UIKit
import CoreData

var activeItem:String = ""

class CenterViewController: UIViewController,
  UIWebViewDelegate, NSFetchedResultsControllerDelegate,     
 SidePanelViewControllerDelegate {
 var detailViewController: DetailViewController? = nil
 var managedObjectContext: NSManagedObjectContext? = nil

@IBOutlet weak var titleLabel: UILabel!
@IBOutlet weak var tableview: UITableView!
@IBOutlet weak var webview2: UIWebView!


var delegate: CenterViewControllerDelegate?

// MARK: Button actions

@IBAction func kittiesTapped(sender: AnyObject) {
delegate?.toggleLeftPanel?()
 }

@IBAction func puppiesTapped(sender: AnyObject) {
delegate?.toggleRightPanel?()
 } …
Run Code Online (Sandbox Code Playgroud)

null core-data uitableview optional-values swift

2
推荐指数
1
解决办法
3307
查看次数

swift中可选值之间的区别?

有什么区别:

var title:String? = "Title" //1
var title:String! = "Title" //2
var title:String = "Title" //3
Run Code Online (Sandbox Code Playgroud)

如果我在各方面设置标题并且我被迫以不同的方式展开每个变量,我该怎么说?

optional-values swift

2
推荐指数
1
解决办法
1382
查看次数

忽略表达式中的可选前缀

如何在可选的前缀之后获取字符串?例:

Expression    Result
------------------------
[asdf]xxx  => xxx
[foo]bar   => bar
[]bla      => bla
test       => test
Run Code Online (Sandbox Code Playgroud)

[...] 是可选部分。

显然,我需要环顾一下断言。但是我不知道将它设置为可选。

regex optional-values

0
推荐指数
1
解决办法
3310
查看次数

为什么是可选("文本") - 斯威夫特

我刚开始使用Swift.所以我创建了一个带有标签,按钮和文本字段的简单应用程序.单击该按钮时,应用程序必须使用文本字段的文本更改标签.

class ViewController: UIViewController {
    @IBOutlet weak var textLabel: UILabel!
    @IBOutlet weak var textField: UITextField!

    @IBAction func updateButton(sender: UIButton) {
        textLabel.text = "Hi \(textField.text) "
    }
Run Code Online (Sandbox Code Playgroud)

结果是

嗨可选("TextOfTextField")

好的.所以这是一个非常简单的问题.

我希望有一个人可以帮助我.

在此输入图像描述

string optional ios optional-values swift

0
推荐指数
2
解决办法
1万
查看次数