我們都知道在 Swift 語言當中不再有 main 函數了,可能瞭解過 C語言或者 JAVA 語言的同學對這一點趕到深深的不適。總之,取而代之的是 main.swift。
1 2 3 4 |
int main(int argc, const charchar * argv[]) { printf("Hello, World!\n"); return 0; } |
在 Swift 語言當中,編譯器不會再去尋找 main 函數作為程式的入口,而是這個「main.swift」檔,根據官方的解釋來看,這個檔中的內容即為全域作用域之下,它將作為整個專案的入口,而其它檔當中則不能直接寫除聲明之外的語句。
1 2 3 |
import Foundation print("Hello World!",appendNewline true) |
消失了的 main 函數
那麼,沒有了這個函數,我們從何處獲取入口參數? 熟悉的 argc 和 argv 跑到哪裡去了?
其實在 Swift 中這兩個參數還是存在的——畢竟 Swift 相容 C 不是嗎?
我們只需要從全域變數當中提取它們就可以了:
1 2 3 |
//在 Swift 中,这二者分别被声明为如下形式 Process.arguments |
獲取參數
要獲取參數,我們只需要從這個全域變數當中提取它們——類型是 String 陣列:
1 2 3 4 5 6 7 |
let argv = Process.arguments for arg in argv { //打印所有接收到的参数 print(arg) } |
這樣,我們就能夠獲得傳入的參數了,當然,預設的第一個依舊是程式的目前的目錄。
本文由 落格博客 原創撰寫:落格博客 » Swift 如何像 C語言 那樣接收入口參數?
轉載請保留出處和原文鏈接:https://www.logcg.com/archives/1029.html