在 A.swift 使用 B.swift 的 class

BeImported.swift

public class BeImported {
  static func show_message() -> Void {
    print("Jello!")
  }
}

main.swift

(BeImported.show_message())

In swift, you can’t import a typical *.swift file.

Swift 中的 import 是對 module 有效,不是檔案

所以如果你要在 main.swift 中使用 BeImport.swift 的 class:

Works

$ xcrun -sdk macosx swiftc -emit-executable -o a BeImported.swift main.swift
$ ./a
Hello!

$ swiftc -o a main.swift BeImported.swift
$ ./a
Hello!

Not Works

# swift main.swift BeImported.swift
(Got some errors..)

因為 swift 是 Swift executer,要用 swiftc 先 compile 才能執行

(Java 好像也是這樣? 但 javac 編譯好後,要用 java 執行,而 swift a 會錯誤)

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google photo

您的留言將使用 Google 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s