函式 Function


書籤

基本架構

func (函式)() {
    (執行的動作)
}
func function() {
    print("learning swift is useful.")
}
function()
  • 執行結果
    learning swift is useful.
    

型別標註

func (函式)((常數): (型別)) {
    (執行的動作)
}
func function(_ data: Int) {
    print("\(data) + 1 = \(data + 1)")
}
function(1)
  • 執行結果
    1 + 1 = 2
    

預設參數值

func function(_ data: Int = 10) {
    print("\(data) + 1 = \(data + 1)")
}
function()
function(1)
  • 執行結果
    10 + 1 = 11
    1 + 1 = 2
    

參數值為func

func data() {
    print("swift")
}
func function(_ action: Void) {
    action
}
function(data())
  • 執行結果
    swift
    

不同參數名稱

func (函式)((名稱) (常數): (型別)) {
    (執行的動作)
}
func function(text data: String) {
    print("\(data)")
}
func function(number data: Int) {
    print("\(data)")
}
function(text: "swift")
function(number: 1)
  • 執行結果
    swift
    1
    

多組參數

func (函式)((常數1): (型別1), (常數2): (型別2)...) {
    (執行的動作)
}
func function(_ data1: String,_ data2: String) {
    print("\(data1) & \(data2)")
}
function("text1", "text2")
  • 執行結果
    text1 & text2
    

不定數量參數

func (函式)((常數): (型別)...) {
    (執行的動作)
}
func function(_ data: Int...) {
    print("\(data)")
}
function(1, 3, 5)
  • 執行結果
    ["1", "3", "5"]
    

回傳數值

func (函式)((常數): (型別)) -> (返回型別) {
    (執行的動作)
    return (返回值)
}
func function(_ data: Int) -> String {
    return data == 0 ? "good" : "bad"
}
let result1 = function(0)
print(result1)
let result2 = function(1)
print(result2)
  • 執行結果
    good
    bad
    

巢狀函式

  • 範例一
    func function(_ number: Int) -> String {
        func data1() -> String {
            return "good"
        }
        func data2() -> String {
            return "bad"
        }
        return number == 0 ? data1() : data2()
    }
    let text1 = function(0)
    let text2 = function(1)
    print(text1)
    print(text2)
    
    • 執行結果
      good
      bad
      
  • 範例二
    func `repeat`(_ count: Int) -> (String) -> Void {
        func function(_ data: String) {
            for _ in 1...count {
                print(data)
            }
        }
        return function
    }
    `repeat`(2)("swift")
    
    • 執行結果
      swift
      swift
      

results matching ""

    No results matching ""