美文网首页
Emoji 上的 Swift:换一种视角来理解 Swift 高阶

Emoji 上的 Swift:换一种视角来理解 Swift 高阶

作者: 梁杰_numbbbbb | 来源:发表于2016-12-09 23:17 被阅读102次

    作者:Erica Sadun,原文链接,原文日期:2016-11-08
    译者:星夜暮晨;校对:Crystal Sun;定稿:CMB

    不久之前,Iain Delaney 给我发了这一幅图:

    这幅由 Steve Luscher 设计的图,其内容来源于 Joey Devilla 的博客 Global Nerdy 中的一篇文章。我觉得这种做法相当有才,让人眼前一亮。

    然而,这幅图不是用 Swift 编写的,显然没办法在 Swift 中运行。我决定娱乐一番:我建立了一个 Playground,将大量的 Emoji 字符分配到对应的 Emoji 变量当中,由此构建了一个庞大的列表,然后使用 Swift 的语法让这些例子能够正确运行。

    我决定听从 Jaden Geller 在 Twitter 上的所提出的建议,我没有使用便便💩来表示 reduce 操作,因为这原先会让人理解为:在每个 reduce 操作执行的时候,都是将便便和一个新的食物合起来一同「吃下」。在 Swift 的版本当中,reduce 将从一个悲伤的表情😪开始,最后变得高兴和满足😋。

    我尝试加了更多的食物种类,看看是否值得扩展一下图片上的内容,但是我发现一旦示例数量超过了原先的 4 种食物,就不够干净和优雅了:

    我决定不再使用奶牛🐮、土豆🍠、小鸡🐔和玉米🌽,我想看一看是否存在一个比 isVegetarian 更好的 filter 选项。比如说孩子们将会选择自己爱吃的食物(往往并不营养):

    然后我又想到,那么为什么不再多加一些 Swift 语言的特性呢?于是我决定描述一下可变和不可变项目操作的概念:

    以及重复操作:

    还有排序操作(虽然我觉得这里可能换用别的食物会更好一些):

    当然了,zip 操作同样很赞:

    然后还有 mapflatMap 的对比:

    很遗憾的是,足球并不是一个合法的字符标识符,所以我无法在足球和橄榄球之间执行 bitcast 操作。这种不一致的 Emoji 字符集让我很不开心。Swift 需要对操作符和标识符进行基于标准的改造。

    当我在鼓捣 fatalError 的时候,我发现我的时间都耗费在这里了:

    不知道您是否有喜爱的 Swift 功能,想用 Emoji 将其表示出来吗?我已经向大家展示了我的想法。现在,是时候展示您的想法了。

    更新:Phil Aaronson 建议还可以使用 emoji 函数

    @ericasadun functions too! pic.twitter.com/IDwDBps2WD

    — Phil Aaronson (@phildrone) November 8, 2016

    理想情况下,这些示例应当都可以在 Swift Playground 当中编译运行,我同样赞同使用其他 Emoji 来阐述这些功能,即使实现起来相当棘手。

    本文由 SwiftGG 翻译组翻译,已经获得作者翻译授权,最新文章请访问 http://swift.gg

    相关文章

      网友评论

          本文标题:Emoji 上的 Swift:换一种视角来理解 Swift 高阶

          本文链接:https://www.haomeiwen.com/subject/ygyymttx.html