【问题标题】:Accessing values - Swift [closed]访问值 - Swift [关闭]
【发布时间】:2018-03-30 18:20:29
【问题描述】:

您将获得一个类型为 [String:String] 的字典密码,其中包含所有小写字母的值。 crypt 字典代表了一种对消息进行编码的方式。例如,如果 crypt["h"] = "@" 和 crypt["i"] = "!"消息“hi”的编码版本将是“@!”。

问题是我必须编写代码来接受仅包含小写字母和空格的任何字符串,并使用 crypt 字典对其进行编码。我尝试编写代码失败了,所以我最终只使用了一个打印语句 //打印(crypt["h"]!,crypt["i"]!).

如果您有任何想法想分享,请这样做。

谢谢

【问题讨论】:

    标签: swift dictionary


    【解决方案1】:

    这是否符合您的要求:

    let message = "hi"
    let encryptedMessage = message.map { crypt[String($0)]! }.joined()
    

    如果您不熟悉它,mapping 一个字符串会遍历每个字符,对其执行某些操作,然后返回该字符串。 $0 指的是第一个参数(在本例中为 1 的 #1,但索引为 0)。

    【讨论】:

    • 哦,是的,我完全不熟悉它,我将搜索一些文档以了解它。谢谢,你的回答很有帮助。
    • 这听起来像是 CS 家庭作业...
    • 我正在学习 Swift,所以当我无法使用书籍或视频,或者无法联系到我的教授时。我联系了这个网站,这不是这个网站的目的吗?这不像我已经发布了我的任务......
    【解决方案2】:

    正如 Dopapp 所说,地图是最优雅的解决方案。如果你想看到一些分解的步骤,你可以做很长的路要走。

    var message = "hi"
    var crytpedMessage = ""
    for char in message {
        let newChar = crypt[String(char)]
        cryptedMessage.append(newChar)
    }
    

    【讨论】:

    • 我现在有点明白了,但是你认为可以把它作为一个函数来做吗?
    • 很有可能。您可以轻松地将消息作为参数传递,以及 crypt 字典以保持其模块化,并返回 cryptedMessage。
    猜你喜欢
    • 2015-09-30
    • 1970-01-01
    • 2017-04-15
    • 2013-10-11
    • 2014-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-19
    相关资源
    最近更新 更多