2019独角兽企业重金招聘Python工程师标准>>>

原文:
https://www.raywenderlich.com/128039/command-line-programs-os-x-tutorial

练习写的代码:

https://github.com/uniquejava/Panagram

知识点:

取程序名
let executableName = (Process.arguments[0] as NSString).lastPathComponent

取命令行参数个数
let argCount = Process.argc

取参数数组(比如第一个参数)
let argument = Process.arguments[1]

字符串操作
截取
argument.substringFromIndex(argument.startIndex.advancedBy(1)))

替换:
self.lowercaseString.stringByReplacingOccurrencesOfString(" ", withString: "")

反转:
String(str.characters.reverse())

排序:
str.characters.sort()

去掉换行符
str = NSString(data: inputData, encoding: NSUTF8StringEncoding)!
str.stringByTrimmingCharactersInSet(NSCharacterSet.newlineCharacterSet())

扩展
命名StringExtension.swift
语法extension String{ func methodA() {}}

比较==
比较字符串相等,   
"hello" == "hello"
比较数组相等
["hello", "world"] == ["hello", "world"]

标准输入STDIN

func getInput() -> String {// 使用OC的API//1let keyboard = NSFileHandle.fileHandleWithStandardInput()//2let inputData = keyboard.availableData//3let strData = NSString(data: inputData, encoding: NSUTF8StringEncoding)!//4return strData.stringByTrimmingCharactersInSet(NSCharacterSet.newlineCharacterSet())// 或者使用swift中新的API//return readLine()!}

标准及错误输出STDOUT, STDERR

func writeMessage(message: String, to: OutputType = .Standard) {switch to {case .Standard:print("\u{001B}[;m\(message)")case .Error:fputs("\u{001B}[0;31m\(message)\n", stderr)}
}

定义enum

enum OutputType {case Errorcase Standard
}enum OptionType: String {case Palindrome = "p"case Anagram = "a"case Help = "h"case Quit = "q"case Unknowninit(value: String) {switch value {case "a":self = .Anagramcase "p":self = .Palindromecase "h":self = .Helpcase "q":self = .Quitdefault:self = .Unknown}}
}

转载于:https://my.oschina.net/uniquejava/blog/685537

swift编写命令行工具相关推荐

  1. java 编写命令行工具_编写命令行工具

    1.使用common-cli编写命令行工具 commons-cli是Apache开源组织提供的用于解析命令行参数的包. 先引用common-cli依赖包: commons-cli commons-cl ...

  2. python工具是什么-使用Python编写命令行工具有什么好的库?

    使用Python编写命令行工具的库很多,我最推荐的还是Google Fire Hello World 要介绍Fire是什么,看一个简单的例子就明白了 # calc.py import fire cla ...

  3. 使用.Net Core编写命令行工具(CLI)

    使用.Net Core编写命令行工具(CLI) 命令行工具(CLI) 命令行工具(CLI)是在图形用户界面得到普及之前使用最为广泛的用户界面,它通常不支持鼠标,用户通过键盘输入指令,计算机接收到指令后 ...

  4. go编写命令行工具_编写者的命令行文档转换工具

    go编写命令行工具 今天,我们有足够的工具可用于在我们的计算机上编辑备忘录,信件,论文,书籍,演示幻灯片和其他文档. 这既有好处也有缺点:一方面,如果您不喜欢某个软件,则可以随时随地转到另一个软件上: ...

  5. node工程默认url_node命令行工具之实现项目工程自动初始化的标准流程

    一.目的 传统的前端项目初始流程一般是这样: 可以看出,传统的初始化步骤,花费的时间并不少.而且,人工操作的情况下,总有改漏的情况出现.这个缺点有时很致命. 甚至有马大哈,没有更新项目仓库地址,导致提 ...

  6. python3命令需要使用命令行开发者工具_3 个 Python 命令行工具

    用 Click.Docopt 和 Fire 库写你自己的命令行应用. 有时对于某项工作来说一个命令行工具就足以胜任.命令行工具是一种从你的 shell 或者终端之类的地方交互或运行的程序.Git 和 ...

  7. 中文 Markdown 编写格式规范的命令行工具 lint-md

    lint-md 用于检查中文 markdown 编写格式规范的命令行工具,基于 AST 开发,且方便集成 ci.Cli tool to lint your markdown file for Chin ...

  8. 【重识云原生】第六章容器6.3.7节——命令行工具kubectl

    <重识云原生系列>专题索引: 第一章--不谋全局不足以谋一域 第二章计算第1节--计算虚拟化技术总述 第二章计算第2节--主流虚拟化技术之VMare ESXi 第二章计算第3节--主流虚拟 ...

  9. TaxonKit:小巧、高效、实用的NCBI分类学数据命令行工具

    TaxonKit: 小巧.高效.实用的NCBI分类学数据命令行工具集 宏基因组按:NCBI物种分类注释信息格式复杂,存在层级不整齐.缺失.名称变动等问题,在使用中存在一定困难.最近发现了一款分类信息查 ...

最新文章

  1. Unity粒子系统创建VFX游戏特效学习教程 Visual Effects in Unity Particle Systems [Beginner’s Guide]
  2. R语言使用vtreat包的designTreatmentsC函数构建数据预处理计划、vetreat包的score frame(新生成数据变量的指南)、以及score frame字段说明
  3. 浅谈python_浅谈Python(二)
  4. 《信息安全系统设计基础》实验四 外设驱动程序设计
  5. PAT_B_1002_Java(20分)
  6. 解决:-source 1.6 中不支持 diamond 运算符 [ERROR] (请使用 -source 7 或更高版本以启用 diamond 运算符)
  7. 半素数c语言,非常简单的c题目 不懂 紧急求助
  8. 用js实现改变随意改变div属性style的名称和值的结果
  9. 正在修复磁盘怎么取消
  10. event.srcElement 与event.target
  11. 留学文书中到底要回答哪些问题?
  12. beanshell学习
  13. Kali Linux 暴力破解 Excel密码
  14. Android 手机的高级终端 Termux 安装、使用
  15. ctfshow 做题 MISC入门 模块1-10
  16. Java开发需要学什么!中原银行java面试题目
  17. vue项目模拟后台数据
  18. 如何下载blob:https://www.bilibili.com/的视频
  19. STM32智能开关窗设备
  20. 2019_ACL_Multimodal Transformer for Unaligned Multimodal Language Sequences

热门文章

  1. NAT的经典配置实例
  2. matplotlib - 3D scatter plot
  3. 嵌入式入门学习笔记4:[转]什么是嵌入式底层驱动开发和嵌入式底层软件开发...
  4. 使用Area(区域)会遇到的问题
  5. JAVA中的面向对象与内存解析_2
  6. 用java api 实现查询 Hive 数据
  7. windows 2012 如何设置取消禁拼ping
  8. iOS - 打电话, 发短信
  9. Spring 操作数据库
  10. 利用ASP下载远程文件到服务器