1. 程式人生 > >彼得潘的 Swift iOS App 開發問題解答集

彼得潘的 Swift iOS App 開發問題解答集

Swift 程式初學者常見的程式問題 — 解答篇

1 大小寫打錯

var song = "帶你去旅行"
print(Song)
Use of unresolved identifier 'Song'

s 要小寫,不是大寫。

var song = "帶你去旅行"
print(song)

2 呼叫 function 時,不需要加 func。

func 帶你去旅行() {
   print("我想要帶你去浪漫的土耳其,然後一起去東京和巴黎")
}
func 帶你去旅行()
Invalid redeclaration of '帶你去旅行()'

只有定義 function 時要加 func,呼叫時只要 function 的名字加 ( ),所以應該改成

func 帶你去旅行() {
   print("我想要帶你去浪漫的土耳其,然後一起去東京和巴黎")
}
帶你去旅行()

3 { } 沒有成對。

func 帶你去旅行() {
   print("我想要帶你去浪漫的土耳其,然後一起去東京和巴黎")
Expected '}' at end of brace statement

就像彼得潘一定要搭配 wendy,{ 也一定要搭配 }。剛剛的例子少了 },正確的程式如下

func 帶你去旅行() {
   print("我想要帶你去浪漫的土耳其,然後一起去東京和巴黎")
}

可用以下兩個方法檢查 { } 是否成對。

方法1:

在 { 上雙擊,如果順利找到心愛的另一半 },將如下圖所示,整個 { } 區塊被選取。

找不到另一半的可憐例子。

方法2:

在 func, if 等關鍵字上按住 cmd 鍵後點選,將如下圖所示,整個 { } 區塊被選取。

找不到另一半的可憐例子。

4 呼叫 function 時要加 ( )

func 最想留住的幸運() {
print("原來彼得潘是我最想留住的幸運")
print("原來我們和愛情曾經靠得那麼近")
}
最想留住的幸運

呼叫 function 時要加 ( ),才能順利執行 function 裡的程式,正確版本如下

func 最想留住的幸運() {
   print("原來彼得潘是 我最想留住的幸運")
}
最想留住的幸運()

5 只有定義 function,忘了呼叫 function,不會執行 function 裡的程式。

func 最想留住的幸運() {
   print("原來彼得潘是我最想留住的幸運")
}

想要印出訊息原來彼得潘是我最想留住的幸運,但因為沒有呼叫 function,所以不會執行 function 裡的程式,正確版本如下

func 最想留住的幸運() {
   print("原來彼得潘是 我最想留住的幸運")
}
最想留住的幸運()

6 常數要用 let 宣告產生後才能存取。(變數要用 var 宣告產生後才能存取)

name = "Peter"
Use of unresolved identifier 'name'

正確版本如下

let name = "Peter"

7 字串要加 “ ”

var name = 彼得潘
Use of unresolved identifier '彼得潘'

正確版本如下

var name = "彼得潘"

8 定義 function 要加 { }

func 帶你去旅行()
Expected '{' in body of function declaration

正確版本如下

func 帶你去旅行() {
   print("我想要帶你去浪漫的土耳其,然後一起去東京和巴黎")
}

9 比較相等要用兩個等於

var number = 10
if number = 100 {
   print("100分")
}
Use of '=' in a boolean context, did you mean '=='?

正確版本如下

var number = 10
if number == 100 {
   print("100分")
}

10 名字不能有空白

func listen to music() {
   print("聽音樂")}
Found an unexpected second identifier in function declaration

名字不能有空白,因此 function,變數,常數,型別的名字都不能有空白。

正確版本如下

func listenToMusic() {
   print("聽音樂")
}

11

func addNumber(number1: Int, number2: Int) {
   return number1 + number2
}
Unexpected non-void return value in void function

function 裡回傳整數,但 function 沒有加上 -> Int。

正確版本如下

func addNumber(number1: Int, number2: Int) -> Int {
   return number1 + number2
}