Swift 命令行工具

转载 2015年07月08日 16:24:46

转自:http://www.cocoachina.com/swift/20140927/9772.html


Swift 的 REPL (Read-Eval-Print Loop) 环境可以让我们使用 Swift 进行简单的交互式编程。也就是说每输入一句语句就立即执行和输出。这在很多解释型的语言中是很常见的,非常适合用来对语言的特性进行学习。

要启动 REPL 环境,就要使用 Swift 的命令行工具,它是以 xcrun 命令的参数形式存在的。首先我们需要确认使用的 Xcode 版本是否是 6.1 或者以上,如果不是的话,可以在 Xcode 设置里 Locations 中的 Command Line Tools 一项中进行选择。然后我们就可以在命令行中输入 xcrun swift 来启动 REPL 环境了。

在 Xcode 6.0 中是没有包含 OSX 10.10 的 SDK 的,而命令行执行 Swift REPL 是需要最新版的 OSX SDK 的。如果我们使用 Xcode 6.0 的版本的话,会出现 the SDK 'MacOSX10.9.sdk' does not support Swift 的错误。

要指出的是,REPL 环境只是表现得像是即时的解释执行,但是其实质还是每次输入代码后进行编译再运行。这就限制了我们不太可能在 REPL 环境中做很复杂的事情。

另一个用法是直接将一个 .swift 文件作为命令行工具的输入,这样里面的代码也会被自动地编译和执行。我们甚至还可以在 .swift 文件最上面加上命令行工具的路径,然后将文件权限改为可执行,之后就可以直接执行这个.swift 文件了:

  1. // hello.swift 
  2. #!/usr/bin/env xcrun swift 
  3. println("hello"
  4.  
  5. // Terminal 
  6. > chmod 755 hello.swift 
  7. > ./hello.swift 
  8.  
  9. // 输出: 
  10. hello 

这些特性与其他的解释性语言表现得完全一样。

相对于直接用 swift 命令执行,Swift 命令行工具的另一个常用的地方是直接脱离 Xcode 环境进行编译和生成可执行的二进制文件。我们可以使用 swiftc 来进行编译,比如下面的例子:

  1. // MyClass.swift 
  2. class MyClass { 
  3.     let name = "XiaoMing" 
  4.     func hello() { 
  5.         println("Hello \(name)"
  6.     } 
  7.  
  8. // main.swift 
  9. let object = MyClass() 
  10. object.hello() 
  11.  
  12.  
  13. > xcrun swiftc MyClass.swift main.swift 

将生成一个名叫 main 的可执行文件。运行之:

  1. > ./main 
  2. // 输出: 
  3. // Hello XiaoMing 

利用这个方法,我们就可以用 Swift 写出一些命令行的程序了。

最后想说明的一个 Swift 命令行工具的使用案例是生成汇编级别的代码。有时候我们想要确认经过优化后的汇编代码实际上做了些什么。swiftc 提供了参数来生成 asm 级别的汇编代码:

  1. swiftc -O hello.swift > hello.asm 

Swift 的命令行工具还有不少强大的功能,对此感兴趣的读者不妨使用 xcrun swift --help 以及 xcrun swiftc --help 来查看具体还有哪些参数可以使用。


Swift 命令行工具

Swift 的 REPL (Read-Eval-Print Loop) 环境可以让我们使用 Swift 进行简单的交互式编程。也就是说每输入一句语句就立即执行和输出。这在很多解释型的语言中是很常见的,...
  • yangkunlll
  • yangkunlll
  • 2014年09月28日 09:06
  • 633

windows上更好的命令行工具软件

windows自带的console cmd用起来太不爽了,尝试了一些其他的:看下来是powercmd和cmder比较好,而且两个都可以和total commander结合起来,很不错。 相比之下, ...
  • ccanan
  • ccanan
  • 2016年04月27日 10:01
  • 6015

ios-常见的命令行工具

pwd : 查看当前目录 cat : 在命令行中查看文件 ls : 查看文件 ls -l : 就是以列表的形式展开 touch : 创建文件 open :打开文件 more : 分...
  • ZCMUCZX
  • ZCMUCZX
  • 2017年08月04日 11:40
  • 126

MongoDB 生态 - 官方命令行工具

Mongo shell MongoDB 的命令行管理工具,也是 MongoDB 最常用的工具,功能非常丰富,比如常用的 show dbs / show tables / show user...
  • yujin2010good
  • yujin2010good
  • 2016年12月20日 23:25
  • 1068

【安卓】常用Android命令行工具,包括真机上的操作

1.  启动和关闭ADB服务(adb start-server和adb kill-server)      经作者测试,模拟器在运行一段时间后,adb服务有可能(在Windows进程中可找到这个服务...
  • beMyBest
  • beMyBest
  • 2014年10月20日 15:18
  • 546

Oracle SQL*Plus命令行工具

Oracle基础教程:SQL*Plus命令行工具,该命令行工具,提供了与数据库交互的能力和维护数据库的能力,包括了Oracle自带的SQL*Plus工具的全部功能,在Oracle管理中经常使用。在命令...
  • oraclestudyroad
  • oraclestudyroad
  • 2016年08月08日 14:13
  • 1505

PHPStorm Yii 命令行工具

转自http://blog.lixiphp.com/phpstorm-yii-command-line/ PHPStorm 虽然在框架整合(Framework Integration)上...
  • yuan512
  • yuan512
  • 2013年09月21日 19:30
  • 970

使用SVN命令行工具

从http://subversion.tigris.org获取subversion for windows的版本,安装之后就有了svn.exe这个基于命令行的客户端工具。当然服务器端的程序也有了,...
  • hxmcnu
  • hxmcnu
  • 2014年04月18日 12:38
  • 1647

svn命令行工具安装使用(windows)

从http://subversion.tigris.org获取subversion for windows的版本,安装之后就有了svn.exe这个基于命令行的客户端工具。 安装装程序会自动把svn....
  • e_wsq
  • e_wsq
  • 2012年02月12日 15:27
  • 5819

sqlite命令行工具简单操作

在Win32下面操作,先看下sqlite.exe的帮助: D:\>sqlite3.exe -help Usage: sqlite3.exe [OPTIONS] FILENAME [SQL] FI...
  • lixianlin
  • lixianlin
  • 2011年12月10日 17:25
  • 2427
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Swift 命令行工具
举报原因:
原因补充:

(最多只允许输入30个字)