首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

苹果开源ArgumentParser:为Swift加个工具?

作为苹果四年磨一剑的产物,Swift 绝不仅仅为了替换 Object-C,Swift 寄托了苹果宏大的愿景。而最近,苹果开源 ArgumentParser,为 Swift 再加一把趁手的“兵器”。

苹果开源ArgumentParser

近日,苹果Swift标准库团队的Nate Cook在Swift官网上宣布ArgumentParser库正式开源。它由Swift实现,用于解析命令行参数(command-line arguments),具有直观、易用、简洁、安全的特点,是一个很出色的解析器。Nate Cook表示,用ArgumentParser解析Swift中的命令行参数时会轻松很多。

在GitHub上,ArgumentParser的 star 数已经近一千。苹果还推荐了两个ArgumentParser在Swift项目工具中采用的示例:

  • indexstore-db:一个包含两个命令的简单实用程序。
  • swift-format:使用了一些高级功能,例如自定义选项值和隐藏标志。

使用

文章中通过四个简单的操作来介绍ArgumentParser如何使用:

  1. 如何生成一个介于 1 和 highValue 之间的随机数;
  2. 如何进行自定义验证,以及出现错误时会在屏幕上出现提示信息;
  3. 如何实现在ArgumentParser中使用子命令;
  4. 以及如何填加第二个子命令。

这四个操作的代码共计不到50行,它会自动检测用户给出的子命令,解析该子命令的参数,然后调用其对应方法。如果用户没有给出子命令,会按默认的命令调用其对应方法。除此之外,ArgumentParser还支持很多其他功能。了解更多信息:https://github.com/apple/swift-argument-parser

Nate Cook还提到,在短期内会将一些常用的附加功能添加进去,以确保SwiftPM在采用ArgumentParser时不会出现功能不全的情况。在SwiftPM完全采用ArgumentParser后,Swift标准库团队将会在Swift编译器驱动程序中采用该库。

在ArgumentParser库之前,SwiftPM中有一个TSCUtility库,该库中就包含一个参数解析器,不过苹果并没有让TSCUtility库“发扬光大”的打算。所以,苹果开源了ArgumentParser,并打算在未来的发展与迭代中让其可以在整个Swift项目中被采用。

雄心勃勃的Swift

苹果官方曾说过:“Swift 的目标是,既可以写应用程序,也能写操作系统。”

众所周知,Swift是苹果在2014年全球开发者大会(WWDC)上发布的编程语言,并于2015年正式开源。虽然发布时间不算长,但Swift的普及程度却超出了很多人的预期,在最新的2月份 TIOBE 编程语言排行榜中,Swift排名第十,而前面都是发布至今十余年甚至是几十年的“老大哥”,Swift集成了现代语言的很多特点:高级结构、闭包、泛型等等,也正因如此,Swift成为了编程语言中的一匹黑马。

在刚刚过去的2019 年,Swift经历了两件大事:SwiftUI的发布和Swift for TensorFlow的发布。

SwiftUI 是苹果公司的最新框架,通过 SwiftUI,开发者仅使用一组工具和 API 就能为所有苹果设备构建用户界面。它的口号是,“更好的应用程序,更少的代码”。 Swift for TensorFlow 是一个将谷歌 TensorFlow 框架和 Swift 集成在一起的深度学习和可微分编程平台,这也是 Swift 的一个全新用途。

除此之外,2019 年 3 月发布的Swift 5也终于迎来了ABI稳定,使得Swift获得了更多开发者的青睐。

未来,Swift有了更多的发展方向,不仅可以用于App开发,在服务器、网页、AI、IoT和脚本等方向均有余力。所以,你觉得Swift未来将如何发展?你愿意去学习吗?

官网宣布ArgumentParser库正式开源:https://swift.org/blog/argument-parser/

  • 发表于:
  • 本文为 InfoQ 中文站特供稿件
  • 首发地址https://www.infoq.cn/article/7kQ883AJ0jPeTTXJH5DX
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券