可选出现在结果中

沉默狐

我目前正在学习Swift,并且编写了以下愚蠢的代码,但结果显示如下:“当英雄处于2级时,怪物是Optional(“ sihso”)。我不知道为什么那里有“可选”一词。

var level = 2
var mons = [1 : "SHhi", 2 : "sihso", 3 : "shssh"]
var monster = mons [level]
print("The monster is \(monster)" + " when the hero is at level \(level)")
写作

Optional之所以存在该单词,是因为它monster具有隐式类型String?(可选字符串)。

当查询字典中特定键的值时,它们将返回一个可选类型。给定键的值可能存在也可能不存在。如果不存在,则返回nil

因此,我们必须检查以确保我们获得了价值。

let level = 2
let mons = [1 : "SHhi", 2 : "sihso", 3 : "shssh"]
if let monster = mons[level] {
    print("The monster is \(monster) when the hero is at level \(level)")
}

需要注意的是,如果 mons我们传递的键没有值,则什么也不会打印(这很可能是我们想要的)。

如果我们想以任何一种方式打印,最好的方法可能是使用nil-coalescing运算符(??):

let level = 2
let mons = [1 : "SHhi", 2 : "sihso", 3 : "shssh"]
var monster = mons[level] ?? "unknown"
print("The monster is \(monster) when the hero is at level \(level)")

现在,任何时间mons[level]都会返回nilmonster而是等于"unknown",并且消息将每次都打印(并且永远不会打印Optional())。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么重复值出现在SQL结果中

来自分类Dev

对XSLT文件的更新未出现在XML结果中

来自分类Dev

Sharepoint 2007删除的文档出现在搜索结果中

来自分类Dev

胜利10:如何使exe出现在搜索结果中

来自分类Dev

虚拟字段未出现在REST JSON结果中

来自分类Dev

用户定义的函数结果未出现在Excel中

来自分类Dev

Aptik未出现在搜索结果中

来自分类Dev

可选的ApiModelProperty出现在JSON Swagger响应中,值为空

来自分类Dev

IBS中文拼音输入候选出现在屏幕底部

来自分类Dev

使用Ecto,如何构建查询以返回出现在两个单独的关联中的结果?

来自分类Dev

为什么软删除的实体会出现在查询结果中?

来自分类Dev

防止model.matrix的名称出现在回归结果中

来自分类Dev

具有主题模型的Quanteda:删除的停用词出现在结果中(中文)

来自分类Dev

数字符串的出现在列表中,然后进行排序的结果 - 8的Java

来自分类Dev

设置应用程序选项不会出现在Win10的搜索结果中

来自分类Dev

采样器的Jmeter设置,它不应出现在视图结果树中

来自分类Dev

如何遍历二维数组并使结果以表格形式出现在android中

来自分类Dev

选择出现在另一个查询的所有结果中的条目

来自分类Dev

使用 Google Analytics,如何跟踪某个项目作为结果出现在列表中的次数?

来自分类Dev

为什么 URL 出现在我使用 SPARQL 的查询结果中?

来自分类Dev

如何排序有更多未读消息的用户首先出现在mysql结果中

来自分类Dev

出现在MySQL中的转义字符

来自分类Dev

CSS:不出现在Firefox中

来自分类Dev

按钮未出现在JFrame中

来自分类Dev

MBean未出现在JConsole中

来自分类Dev

使图像出现在jsp中

来自分类Dev

菜单未出现在片段中

来自分类Dev

模态未出现在刷新中

来自分类Dev

使div出现在R中单击

Related 相关文章

  1. 1

    为什么重复值出现在SQL结果中

  2. 2

    对XSLT文件的更新未出现在XML结果中

  3. 3

    Sharepoint 2007删除的文档出现在搜索结果中

  4. 4

    胜利10:如何使exe出现在搜索结果中

  5. 5

    虚拟字段未出现在REST JSON结果中

  6. 6

    用户定义的函数结果未出现在Excel中

  7. 7

    Aptik未出现在搜索结果中

  8. 8

    可选的ApiModelProperty出现在JSON Swagger响应中,值为空

  9. 9

    IBS中文拼音输入候选出现在屏幕底部

  10. 10

    使用Ecto,如何构建查询以返回出现在两个单独的关联中的结果?

  11. 11

    为什么软删除的实体会出现在查询结果中?

  12. 12

    防止model.matrix的名称出现在回归结果中

  13. 13

    具有主题模型的Quanteda:删除的停用词出现在结果中(中文)

  14. 14

    数字符串的出现在列表中,然后进行排序的结果 - 8的Java

  15. 15

    设置应用程序选项不会出现在Win10的搜索结果中

  16. 16

    采样器的Jmeter设置,它不应出现在视图结果树中

  17. 17

    如何遍历二维数组并使结果以表格形式出现在android中

  18. 18

    选择出现在另一个查询的所有结果中的条目

  19. 19

    使用 Google Analytics,如何跟踪某个项目作为结果出现在列表中的次数?

  20. 20

    为什么 URL 出现在我使用 SPARQL 的查询结果中?

  21. 21

    如何排序有更多未读消息的用户首先出现在mysql结果中

  22. 22

    出现在MySQL中的转义字符

  23. 23

    CSS:不出现在Firefox中

  24. 24

    按钮未出现在JFrame中

  25. 25

    MBean未出现在JConsole中

  26. 26

    使图像出现在jsp中

  27. 27

    菜单未出现在片段中

  28. 28

    模态未出现在刷新中

  29. 29

    使div出现在R中单击

热门标签

归档