揭秘“Swifty”代码的魅力:探索其表达力

更新:11-13 名人轶事 我要投稿 纠错 投诉

这篇文章给大家聊聊关于揭秘“Swifty”代码的魅力:探索其表达力,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

Swifty 代码—— Expressive

清晰明确的命名(Clear, expressive naming)

最后让我们看看第三个关键字—— Expressive。虽然很容易将表达能力视为纯粹的装饰,并涉及摆弄方法名称,直到它们全部读成语法完美的英语句子,但最终它是为了让我们的代码清楚地传达其含义。

假设我们编写了一个当前名为getContent 的函数,该函数加载捆绑内容模型的数据,然后对其进行解码:

func getContent(name: String) -内容? {

守卫让url=Bundle.main.url(

对于Resource:名称,

withExtension: "json"

) 别的{

返回零

}

保护让数据=尝试?数据(contentsOf: url)其他{

返回零

}

返回试试? JSONDecoder().decode(Content.self,来自:数据)

}同样,乍一看,上述功能似乎非常好。没有明显的错误并完成工作。不过,在表现力方面,绝对可以提高。

首先,它的当前名称“get content”并没有真正告诉我们如何检索内容。

它只是创建为新实例吗?它是通过网络还是其他方式加载的?另外,如果出现错误,它只返回nil,这使得在发生任何故障时进行调试变得更加困难——,因为我们不知道到底出了什么问题。因此,我们首先将函数重命名为loadBundledContent(以明确我们正在从应用程序包加载内容),看看是否可以改进这些问题。我们还将给它一个外部参数标签,以使其阅读起来更好一些,最后,通过抛出它来报告遇到的任何错误,如下所示:

func loadBundledContent(named name: String) throws -Content {

守卫让url=Bundle.main.url(

对于Resource:名称,

withExtension: "json"

) 别的{

抛出Content.Error.missing

}

保护让数据=尝试?数据(contentsOf: url)其他{

抛出Content.Error.missing

}

做{

返回尝试JSONDecoder().decode(Content.self, from: data)

} 抓住{

抛出Content.Error.decodingFailed(错误)

}

有关上面抛出API 设计方式的更多信息,请查看Swift: 提供统一错误API。

变更前后的调用对比如下:

//前

让内容=getContent(name: "入门")

//后

let content=try loadBundledContent(named: "Onboarding") 重要的是不要过多依赖我们命名的函数和类型(毕竟,它通常取决于品味和偏好),但如果我们能找到一种更清晰地沟通的方法每个API 的做法,这是一个巨大的胜利——,因为它不仅使新开发人员更容易熟悉我们的代码库,而且通常还使我们的代码从长远来看使用起来更加愉快。

结语

在我看来,编写“Swifty”代码并不是要使用尽可能多的语言功能,或者通过部署Swift 最高级的功能来解决简单问题来使我们的代码变得不必要的复杂—— 而是要调整我们设计和表达代码的方式,并且它具有各种具有Swift 核心原则集的API。

通过利用标准库并通过富有表现力的命名和API 设计来传达代码的意图,使我们的代码使用Swift 的类型系统来确保正确性并使其功能更清晰,我们通常会得到更好的代码匹配。 Swift 本身,这不正是编写“Swifty 代码”的目的吗?

用户评论

_心抽搐到严重畸形っ°

我感觉好的代码总是能让人一眼就理解它是干什么的,这就是"Swift"的感觉吧!

    有8位网友表示赞同!

裸睡の鱼

我觉得表达式语言很重要,能让开发者更容易表达自己的意图。

    有7位网友表示赞同!

歇火

用清晰易懂的语句来写代码,这才是“Swifty”的关键啊!

    有7位网友表示赞同!

追忆思域。

最近在学习 Swift,发现它的语法真的挺简洁明了的,让人读起来很舒服。

    有10位网友表示赞同!

殃樾晨

"Expressive"确实能体现出 Swift 在表达性上的优势,感觉它就像是一种艺术形式。

    有8位网友表示赞同!

♂你那刺眼的温柔

以前写代码的时候总觉得太繁琐了,现在用 Swift 写出来感觉轻松很多。

    有18位网友表示赞同!

青墨断笺み

这篇文章让我对 Swift 的 "Expressive" 特点更加了解了,原来它是这样运作的!

    有16位网友表示赞同!

余温散尽ぺ

Swift 真的是一种很棒的编程语言,让我爱上写代码了!

    有6位网友表示赞同!

我没有爱人i

我觉得一个好的语言应能让人轻松表达自己的想法,Swift 确实做到了这一点。

    有18位网友表示赞同!

幸好是你

"Swifty"这个词真是太 apt 了,它完美概括了 Swift 的精髓。

    有9位网友表示赞同!

ヅ她的身影若隐若现

这篇论文分析的很透彻,让我对 "Expressive" 和 Swift 有更深的理解。

    有12位网友表示赞同!

栀蓝

学习 Swift真是一个开心的事情,它能让编程过程更加富有创意。

    有15位网友表示赞同!

箜篌引

我之前听说过 Swift 的强大之处,现在看来 "Expressive" 确实是一个关键因素。

    有7位网友表示赞同!

抚笙

希望这篇关于Swift的文章能激发更多人去探索它的精彩之处!

    有8位网友表示赞同!

秘密

Swift 将语言的表达性与功能结合得非常好,让人佩服它的设计理念。

    有16位网友表示赞同!

赋流云

我期待看到更多利用 "Expressive" 特性的 Swift 项目,它们一定非常强大和创新。

    有13位网友表示赞同!

罪歌

学习一门新语言总是一段挑战,但像 Swift 这样的语言让我更愿意去尝试!

    有7位网友表示赞同!

素衣青丝

使用 Swift 写代码的感觉真是太好了,它就像一本写给程序员的艺术教科书。

    有8位网友表示赞同!

拉扯

"Expressive" 在编程语言中的作用不可忽视,它能让代码更加优雅和高效。

    有12位网友表示赞同!

【揭秘“Swifty”代码的魅力:探索其表达力】相关文章:

1.蛤蟆讨媳妇【哈尼族民间故事】

2.米颠拜石

3.王羲之临池学书

4.清代敢于创新的“浓墨宰相”——刘墉

5.“巧取豪夺”的由来--米芾逸事

6.荒唐洁癖 惜砚如身(米芾逸事)

7.拜石为兄--米芾逸事

8.郑板桥轶事十则

9.王献之被公主抢亲后的悲惨人生

10.史上真实张三丰:在棺材中竟神奇复活

上一篇:揭秘LV复刻包价格:常见价格盘点及10大购买途径推荐 下一篇:揭秘330:深度解读这个数字背后的秘密与影响