iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 8
0
Software Development

iOS App 實作開發新手村系列 第 8

Day8 function(func)的基本介紹

20190924

前言

今天要介紹的是Swift中的方法(function)。

在類別或是結構中,方法是我們常常用到的,除了Apple iOS 的相關Kit內已經有許多方法,我們也可以自行定義要使用的方法。

現在,我們馬上開始!

如何建立playground,請參考Day4的文章
https://ithelp.ithome.com.tw/articles/10217428

方法 func

一樣先來看看程式碼

定義與呼叫方法

// 定義第一個方法
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:)方法

  • 可以看到numberOfRows()方法參數的外部名稱為inSection,而內部參數名稱為section
  • 回傳的型別是Int

總結

在今天的文章裡,我們做了func方法的基本介紹,想要進一步學習的讀者,可以參考文章後面的延伸閱讀。
明天Day9的文章,預計將會介紹Swift中的closure,今天的內容就到這邊,感謝讀者們的閱讀。


Github:

https://github.com/chiron-wang/IT30_11

參考資料與延伸閱讀

  1. 彼得潘的 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

  2. iOS 13 & Swift 5 - The Complete iOS App Development Bootcamp - Angela Yu
    https://www.udemy.com/course/ios-13-app-development-bootcamp/

  3. 深入淺出 iPhone 開發 (使用 Swift4) - WeiWei
    https://www.udemy.com/course/iphone-swift4/

  4. 心智圖軟體Xmind
    https://www.xmind.net/

  5. 彼得潘的Swift程式設計入門
    https://www.tenlong.com.tw/products/9789572246573

  6. 《The Swift Programming Language》正體中文版
    https://tommy60703.gitbooks.io/swift-language-traditional-chinese/content/chapter2/01_The_Basics.html#floating-point_numbers

  7. Apple Developer Document
    https://developer.apple.com/documentation/swift/double

  8. Apple文件的 Initialization參考
    https://docs.swift.org/swift-book/LanguageGuide/Initialization.html

  9. Swift 筆記 - Initialization 的規則:designated init 和 convenience init 的用法
    http://jason9075.logdown.com/posts/285685-swift-note-initialization-rules-convenience-and-designated-initializer-usage


上一篇
Day7 類別與結構
下一篇
Day9 Closure
系列文
iOS App 實作開發新手村36
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言