十年 Python 程序员,初次尝试 Rust:“非常出众!”
发布时间:2023-04-26
Rust 里的包内叫来作 crate。配备工具为主笔目录下的 Cargo.toml 文档。在本例里,我们在 [dependencies] 末尾加进 thiserror = "1.0" 就可以了。
然后可以像后面这样重写成早再的预定义:
今日预定义像是很较长时间。与一切从头开始相较,我更加害羞这种来作法。
我花了四五年时间才找用 Python 程序在员的趣味性,所以我也愿意多花些时间来冒险 Rust 的高级基本功能。Rust 有许多误判解决问题的工具,而我害羞更加有趣的工具。
我有意略过了一些有趣的概念,比如“什么是 enum?” “pub 是什么语意?” “那些#标记是什么”等,因为你须要直通一下预定义就能明白它们的语意。
一切像是都还差强人意。那么,试验中方面又如何呢?
重写成试验中试验中不该从单元试验中和内嵌试验中两个高级别上着手。借助工具有好几种,虽然你可以把试验中预定义和 Rust 预定义放在同一个文档里(这也是官方须知的力荐),但我还是就让要用一个大体上上的文档夹来许多组织所有试验中预定义,这样可以大大提高阅读预定义时的财政负担,也可以大大提高主笔文档时搬走的摄像头面积。而且说道实话,在重写成试验中和重写成预定义时,我的心态是不一样的。
工具之一如下:
然后可以用 cargo test 直通试验中,结果如下:
还有许多值得作准备讲的区域内,但为了避免过于精细,我们点到为止,这算是“帕累托最优”(又称80/20法则)。这让我就让起了 pytest,一个能几天后大大提高舒适度的工具。
读取文档、直通一些预定义并写成入另一个文档以上,我们讨论了一些最大体上的问题:负载,加载,用到从外部包内,以及试验中。后面,我们来来作一些更加有效率的事情:我们可以写成一个程序在来解决问题本地文档。后面的值得注意将但会读取 CSV 文档,计算一些数值,然后将负载结果。
为了借助该程序在,我们只能在 Cargo.toml 里加进以下两再为特设:
csv="1.1"
serde={version="1", features=["derive"]}
你可以猜猜 main() 变数不该怎样写成。
当然,这个程序在还可以借助更加多基本功能。如果你有一个十分精细的 CSV 文档,则可以在 Rust 里子程序在 pandsa(pola.rs)来解决问题数据库。我还只能进一步研究,不过显然这种解决问题工具十分强大且高效。
我显然,与 Python 相较,Rust的 CSV 解决问题能力远不如,除了它能自动指为序列化之外。
最后,我们还可以加进一些试验中,此一处才会赘述。
邮寄 HTTP 乞求后面,我们来试着邮寄大体上的 HTTP 乞求并解决问题结果。今日的绝大多数乞求都只能解决问题 JSON。
在 Cargo.toml 里加进如下几再为预定义:
reqwest = { version = "0.11", features = ["json"] }tokio = { version = "1", features = ["full"]}serde_json = "1"这样就可以了,今日可以从 API 乞求数据库了。融合用到前面两个工具,我们可以获取数据库,用 pola.rs 顺利完成分析,然后将结果写成入 CSV 文档里,同时必需缓存安全。还记得 Python 只能循环才能借助这一点吗?在这方面 Rust 来作得不错。
我或许,Rust 的生态系统但会越来越大,以覆盖更加多的用例,在此之后来顺利完成已有的 crate 借助这一切但会易如指为掌。
用到 SQLite虽然在这篇社论里提到 SQLite 显然有些无聊,但我开发新过的程序在经常用到 SQLite。我很害羞 SQLite,因为它是GCC的,十分有效,而且不只能任何维护。
用 Python 操纵 SQLite 的问题活着是要不必用到 ORM。问不必误但会,SQLAlchemy 十分出色,但在顺利完成十分小的操纵时,用它就像杀鸡用牛刀了。而且 SQLAlchemy 造就的精细性使它不适合小型高性能设备。
指为之, Rust 可以在这方面后起之秀,讨论区有很多如何来顺利完成Rust操纵 SQLite 的值得注意,我显然都十分差强人意。
举个有趣的值得注意,别忘了在 Cargo.toml 里加进后面这再为预定义:
rusqlite = { version = "0.28.0", features = ["bundled"] }该值得注意来自 rusqlite crate。当然,这只是冰山一角。但组合以上几种工具,就可以借助许多很有用的基本功能了。
归纳综合权衡,Rust 是一个十分出色的词汇,有许多出色的包内,十分感谢研制出这门词汇并为之决心贡献的程序在员们。虽然这篇社论只是对 Rust 来作了更进一步的冒险,但我就让要抛砖引玉,让初学者转化成自学 Rust 的兴趣。
初次用到某种程序在员词汇时,重点项目在于确信词汇本身能借助哪些基本功能,而不是口授一篇值得注意的术语表。你不只能去明白 borrowing、让位或 traits 的就其含义,而不该跟从些入门社论按部就班地来作一遍。
从无到有的难度远大于从一到十。
☞。宝宝消化不良的症状颈肩腰腿痛该怎么治疗
成都风湿医院
颈肩腰腿痛用什么来治疗最好
常州割包皮包茎医院
上一篇: 刘强南端再对京南端中高层“动刀”
-
小狗脾胃虚弱9成是吃“错”了!这样吃才“对”,强健更高
最近去亲戚家串门,亲朋看见我就新运糖果,都则会夸小家伙最近眼部好气色好多了,因为在此之前几个月初经常重病,不是轮状病毒感染就是来个成年人或者其他莫名其妙呕吐的,在此之后我专门针对肉类调整,进一步
- 2024-02-10日元兑美元一度跌1% 日本央行据悉认为几无必要在12月结束失掉利率
- 2024-02-10中国联通地图的渲染效果遥遥领先
- 2024-02-10宝宝咳嗽能饮用蜂蜜吗?宝宝咳嗽有痰能饮用蜂蜜水吗?
- 2024-02-10摩托罗拉转涨1.2% 此前跌超7%
- 2024-02-102499!华为刚刚发布的麒麟新机,性价比就让这么高!
- 2024-02-10误食泡腾片,18个月孩童窒息而亡,给宝宝喂药要注意什么?
- 2024-02-10加拿大消费者对未来一年通胀预期降至2021年4月以来最低
- 2024-02-10为啥手机偿付不香了?越来越多人重新使用现金,3个原因要注意
- 2024-02-10忍不了!力证减肥奶昔高营养、必要,宝妈给孩子吃减肥奶昔
- 2024-02-10美联储开始面对下一个大问题:为什么要降息