首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swiftui:如何在“String”中赋值?对象转换为“字符串”对象?

Swiftui:如何在“String”中赋值?对象转换为“字符串”对象?
EN

Stack Overflow用户
提问于 2021-06-10 15:11:06
回答 1查看 71关注 0票数 0

Swiftui字典有一个特性,即使用键访问返回的值始终是"optional“类型。例如,具有类型字符串键和类型字符串值的字典很难访问,因为每个返回值都是optional类型。

一个明显的需要是,在您试图将字典“x=myDictionarykey”的字符串赋给字符串变量x时,将其赋值。

这很棘手,因为字符串值总是以可选字符串的形式返回,通常标识为String?类型。

那么,如何将字典访问返回的字符串?类型值转换为可以赋值给普通字符串类型变量的普通字符串类型呢?

我猜问题在于没有办法确定键是否存在字典值。用于访问字典的键可以是任何东西,因此您必须以某种方式处理它。

EN

回答 1

Stack Overflow用户

发布于 2021-08-01 03:50:17

正如@jnpdx对这个SO问题的回答(How do you assign a String?-type object to a String-type variable?)中所描述的,至少有三种方法可以转换字符串?转换为字符串:

代码语言:javascript
复制
import SwiftUI

var x: Double? = 6.0
var a = 2.0

if x != nil {
    a = x!
}

if let b = x {
    a = x!
}

a = x ?? 0.0

两个关键概念:

  1. 检查optional是否为nil
  2. 如果optional不等于nil,则继续执行

在上面的第一个方法中,"if x != nil“显式地检查以确保在执行闭包之前x不是nil。

在上面的第二个方法中,只要b不等于nil,"if let a= b“就会执行闭包。

在上面的第三种方法中,"nil-coalescing“操作符??是被雇佣的。如果为x=nil,则??之后的默认值被分配给一个。

上面的代码将在操场上运行。

除了上述三种方法之外,至少还有一种使用"guard let“的方法,但我不确定其语法。

我相信以上三种方法也适用于字符串以外的变量?和字符串。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67916352

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档