在進入正式課程之前,請先確認有合適的練習環境(軟硬體)可用,對於第一單元(1.1~1.10)來說,可以用網頁版的Swift編譯器來當作開發環境,當然如果條件允許的話,用 Swift Playgrounds App (需要在iPad或macOS的 App Store 下載)來練習是更好。

第三方(非蘋果官方)的網頁版Swift編譯器有好幾個,列舉網址如下,大致測試過都沒問題,中文均可正常顯示:

  1. Replit https://repl.it/languages/swift
  2. Swift Fiddle https://swiftfiddle.com/
  3. Coding Ground https://www.tutorialspoint.com/compile_swift_online.php

我們先用一個範例程式來測試,這個範例程式出自第一單元第10課(1-10),是第一單元所要學習的語法總結,如果看不太懂沒有關係,大約學習一兩個星期之後就會理解。如果對這個範例程式已經完全理解,基本上就可以進入第二單元。

// 計算時間差:判斷質數快速演算法
// Created by Heman, 2020/11/11
import Foundation

func 判斷質數(_ n: Int) -> Bool {
    if n <= 1 { return false } 
    if n == 2 { return true }
    var 整數 = 2
    let 平方根 = sqrt(Double(n))
    while Double(整數) <= 平方根 {
        if (n % 整數) == 0 {
            return false
        }
        整數 += 1
    }
    return true
}

var 數量 = 0
let 執行前 = Date()
let 上限 = 10000
for i in 1...上限 {
    if 判斷質數(i) {
        數量 += 1
        print(i, terminator: " ")
    }
}
let 時間差 = Date().timeIntervalSince(執行前)
print("\\n1~\\(上限)總共\\(數量)個質數")
print("總計花\\(時間差)秒")

我們以Coding Ground為例,將以上範例程式拷貝貼上,按Execute執行,正確的執行結果如下圖。如果各位執行結果有問題,可以將畫面貼出來,在此或私訊詢問我。

image.png

若要使用Swift Playgrounds的話,請用Mac或iPad到App Store下載此App,打開App後在「更多Playgrounds 檢視全部」中開啟一個「空白」,如下圖。

image.png

image.png

在Swift Playgrounds裡面,每個單元相當是一本動態的電子書(副檔名是 .playgroundbook),「空白」就是開啟一個空白的電子書,可以讓我們練習寫程式。請將上面範例程式貼上,按右下方「執行我的程式碼」,然後再按右下角顯示控制台,查看輸出內容,如下圖。

image.png

如果能用Swift Playgrounds是最好的選擇,因為學習程式設計最好的方式是自己打字,而不是用拷貝貼上。

在Swift Playgrounds 裡面打入程式碼的時候,有非常方便的輔助功能,包括語法檢查、關鍵字提示、物件的參考資料等等,而且到第二單元之後,也無法再使用網頁版了,所以儘早熟悉Swift Playgrounds對學習本課程是越好。

下一節:第1課 自我介紹:字串