今天要介紹的是Swift中的方法(function)。
在類別或是結構中,方法是我們常常用到的,除了Apple iOS 的相關Kit內已經有許多方法,我們也可以自行定義要使用的方法。
現在,我們馬上開始!
如何建立playground,請參考Day4的文章
https://ithelp.ithome.com.tw/articles/10217428
一樣先來看看程式碼
定義與呼叫方法
// 定義第一個方法
func sayHello() {
print("Hello!")
}
// 定義帶參數的方法
func sayHello(name: String) {
print("Hello, \(name).")
}
//呼叫方法
sayHello() // Hello!
sayHello(name: "mike") // Hello, mike.
前面定義了兩個sayHello()方法,並在後面呼叫方法
兩個方法中一個有參數一個沒有
外部參數 & 內部參數
func buy(buyGoods goods: String, price: Int) {
print("我花了\(price)元,買了一個 \(goods) ")
}
// 我花了30400元,買了一個 iPhone11 256GB
buy(buyGoods: "iPhone11 256GB", price: 30400)
buyGoods為外部參數,goods為內部參數
如果沒有定義外部參數,預設與內部參數相同名稱 => price
呼叫時不用寫參數名稱
func add(_ number1: Int, _ number2: Int) {
print("number1 + number2 = \(number1 + number2)")
}
add(3, 5) // 8
前面的方法中,所介紹的都是沒有回傳值的方法,
接者介紹有回傳值的方法
func sub(number1: Int, number2: Int) -> Int {
return number1 - number2
}
sub(number1: 10, number2: 5) // 5
這邊定義了一個有回傳值的sub()方法
回傳的型別為Int
現在我們就來看看Apple官方在UIKit中UITableView內的numberOfRows(InSection:)方法
在今天的文章裡,我們做了func方法的基本介紹,想要進一步學習的讀者,可以參考文章後面的延伸閱讀。
明天Day9的文章,預計將會介紹Swift中的closure,今天的內容就到這邊,感謝讀者們的閱讀。
https://github.com/chiron-wang/IT30_11
彼得潘的 Swift iOS App 開發問題解答集
https://medium.com/%E5%BD%BC%E5%BE%97%E6%BD%98%E7%9A%84-swift-ios-app-%E9%96%8B%E7%99%BC%E5%95%8F%E9%A1%8C%E8%A7%A3%E7%AD%94%E9%9B%86
iOS 13 & Swift 5 - The Complete iOS App Development Bootcamp - Angela Yu
https://www.udemy.com/course/ios-13-app-development-bootcamp/
深入淺出 iPhone 開發 (使用 Swift4) - WeiWei
https://www.udemy.com/course/iphone-swift4/
心智圖軟體Xmind
https://www.xmind.net/
彼得潘的Swift程式設計入門
https://www.tenlong.com.tw/products/9789572246573
《The Swift Programming Language》正體中文版
https://tommy60703.gitbooks.io/swift-language-traditional-chinese/content/chapter2/01_The_Basics.html#floating-point_numbers
Apple Developer Document
https://developer.apple.com/documentation/swift/double
Apple文件的 Initialization參考
https://docs.swift.org/swift-book/LanguageGuide/Initialization.html
Swift 筆記 - Initialization 的規則:designated init 和 convenience init 的用法
http://jason9075.logdown.com/posts/285685-swift-note-initialization-rules-convenience-and-designated-initializer-usage