Swift 命令列工具

2021-07-03 16:44:27 字數 1764 閱讀 2290

**:

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檔案了:

// hello.swift

#!/usr/bin/env xcrun swift

println("hello"

) // terminal

> chmod 755 hello.swift 

> ./hello.swift 

// 輸出:

hello 

這些特性與其他的解釋性語言表現得完全一樣。

相對於直接用swift命令執行,swift 命令列工具的另乙個常用的地方是直接脫離 xcode 環境進行編譯和生成可執行的二進位制檔案。我們可以使用swiftc來進行編譯,比如下面的例子:

// myclass.swift

class

myclass  

} // main.swift

let object = myclass() 

object.hello() 

> xcrun swiftc myclass.swift main.swift 

將生成乙個名叫main的可執行檔案。執行之:

> ./main 

// 輸出:

// hello xiaoming

利用這個方法,我們就可以用 swift 寫出一些命令列的程式了。

最後想說明的乙個 swift 命令列工具的使用案例是生成彙編級別的**。有時候我們想要確認經過優化後的彙編**實際上做了些什麼。swiftc提供了引數來生成asm級別的彙編**:

swiftc -o hello.swift > hello.asm 

swift 的命令列工具還有不少強大的功能,對此感興趣的讀者不妨使用xcrun swift --help以及xcrun swiftc --help來檢視具體還有哪些引數可以使用。

命令列工具

在wince6.0 中,在vs2005 的 build 選單中,有乙個 advanced build commands 其中有很多編譯選項 sysgen 相當於執行命令 blddemo q 一般第一次編譯或者是 改變了 catalog 中的item 的時候,就用這個了。clean sysgen 相當...

命令列工具

執行 scws h 可以看到詳細幫助說明。usage scws options i input o output i string file 要切分的字串或檔案,如不指定則程式自動讀取標準輸入,每輸入一行執行一次分詞 o file 切分結果輸出儲存的檔案路徑,若不指定直接輸出到螢幕 c charse...

c mysql命令列 mysql 命令列工具

1 mysql命令選項 2 mysql命令 3 mysql日誌 4 mysql服務端幫助 5 執行mysql指令碼 6 使用技巧 mysql是乙個能夠編輯輸入行的簡單sql shell,支援互動式和非互動式訪問。使用互動式時,查詢結果以ascii表的格式展示。使用非互動式時,查詢結果以製表符分隔的格...