สอน Swift ตอนที่ 5.1 ฟังก์ชั่น (Functions)

สอน Swift ตอนที่ 5.1 ฟังก์ชั่น (Functions)

ฟังก์ชั่น (Functions) คือ ชุดคำสั่งที่ทำงานเฉพาะอย่าง เรากำหนดชื่อฟังก์ชั่นให้สอดคล้องกับสิ่งที่ทำ ชื่อของฟังก์ชั่นยังถูกใช้เพื่อเรียกให้ฟังก์ชั่นทำงานอีกด้วย

Apr 29, 2017

แก้ไขล่าสุด มีผู้อ่าน 2,794  |  PROGRAMMING SWIFT

ฟังก์ชั่น (Functions) คือ ชุดคำสั่งที่ทำงานเฉพาะอย่าง เรากำหนดชื่อฟังก์ชั่นให้สอดคล้องกับสิ่งที่ทำ ชื่อของฟังก์ชั่นยังถูกใช้เพื่อเรียกให้ฟังก์ชั่นทำงานอีกด้วย 

หน้าตาของฟังก์ชั่นเป็นแบบนี้

func greet(person: String) -> String {
    let greeting = "Hello, " + person + "!"
    return greeting
}

การประกาศฟังก์ชั่นเริ่มต้นด้วยคำสั่ง func ตามด้วยชื่อฟังก์ชั่น ต่อมาด้วย Function Parameters และ Return Values 

  • Function Parameters คือ ตัวแปรที่เราต้องการส่งเข้าไปให้ฟังก์ชั่น เราส่งเข้าไปเพื่อให้ฟังก์ชั่นนำไปใช้งานต่อทำงานตามที่เราต้องการ
  • Return Values คือ ค่าที่ต้องการให้ฟังก์ชั่นส่งคืนกลับออกมาภายนอกใช้งาน

รูปแบบของฟังก์ชั่นจึงเป็นไปตามด้านล่าง

func functionName(parameters) -> returnValues {
    statements
    return someValue
}

 

การเรียกใช้ เรียกด้วยชื่อของฟังก์ชั่น และ ป้อนค่า Parameters

print(greet(person: "Anna"))
// Prints "Hello, Anna!"
print(greet(person: "Brian"))
// Prints "Hello, Brian!"

 

ฟังก์ชั่นจะเรียกได้ ต้องการมีการประกาศก่อนการเรียกใช้เสมอ

func greetAgain(person: String) -> String {
    return "Hello again, " + person + "!"
}
print(greetAgain(person: "Anna"))
// Prints "Hello again, Anna!"

 

ทำไมต้องใช้ฟังก์ชั่น ? (WHY)

การใช้ฟังก์ชั่นจะช่วยลดจำนวนโค้ด ง่ายต่อความเข้าใจ  เมื่อต้องเขียนคำสั่งเดิมซ้ำๆ เราจับคำสั่งเหล่านี้เอาไปใส่ไว้ในฟังก์ชั่น ตัวอย่างเช่น แอพพลิเคชั่นของเรา เป็นแอพพยากรณ์อากาศต้องมีการเขียนโค้ดแปลงจาก Fahrenheit เป็น Celsius บ่อยๆ โค้ดแปลงอุณหภูมิหน้าตาเป็นแบบนี้

celsius = Int(5.0 / 9.0 * (Double(fahrenheit) - 32.0))

สมมุติถ้าวิธีการคำนวณอุณหภูมิมีการเปลี่ยนแปลง เราจำเป็นต้องแก้โค้ดทุกบรรทัดเนื่องจากวิธีการคิดอุณหภูมิเปลี่ยนไป วิธีแก้ปัญหานี้ คือ ใช้ฟังก์ชั่น

func convertToCelsius(fahrenheit: Int) -> Int {
    return Int(5.0 / 9.0 * (Double(fahrenheit) - 32.0))
}

เรียกวิธีการแปลงจาก Fahrenheit เป็น Celsius จากฟังก์ชั่นแทน เมื่อต้องแก้ไขก็แก้ที่ฟังก์ชั่นที่เดียว

let fahrenheit = 100
celsius = convertToCelsius(fahrenheit)

 

ฟังก์ชั่นนั่นสามารถประกาศได้หลายแบบ

1. ฟังก์ชั่นที่ไม่มีตัวแปร (Function Without Parameters)

func sayHelloWorld() -> String {
    return "hello, world"
}
print(sayHelloWorld())
// Prints "hello, world"

 

2. ฟังก์ชั่นที่ตัวแปรหลายตัว (Function With Multiple Parameters)

func greet(person: String, alreadyGreeted: Bool) -> String {
    if alreadyGreeted {
        return greetAgain(person: person)
    } else {
        return greet(person: person)
    }
}
print(greet(person: "Tim", alreadyGreeted: true))
// Prints "Hello again, Tim!"

 

3. ฟังก์ชั่นที่ไม่การคืนค่ากลับ (Function Without Return Values)

func greet(person: String) {
    print("Hello, \(person)!")
}
greet(person: "Dave")
// Prints "Hello, Dave!"

 

4. ฟังก์ชั่นที่มีการคืนค่าหลายค่า (Function with Multiple Return Values)

func minMax(array: [Int]) -> (min: Int, max: Int) {
    var currentMin = array[0]
    var currentMax = array[0]
    for value in array[1..<array.count] {
        if value < currentMin {
            currentMin = value
        } else if value > currentMax {
            currentMax = value
        }
    }
    return (currentMin, currentMax)
}

let bounds = minMax(array: [8, -6, 2, 109, 3, 71])
print("min is \(bounds.min) and max is \(bounds.max)")
// Prints "min is -6 and max is 109"

 


แบ่งปัน

ชอบ +1

บันทึก

ฝากคำถาม คำแนะนำ ได้ที่

Facebook : Share.OlanLab.Com
LINE ID : @olanlab
อีเมล์ : olan@olanlab.com

หลักสูตร

สอน Swift สร้างแอพพลิเคชั่นบน IOS, macOS, tvOs, watchOs

Swift ภาษาเขียนแอพพลิเคชั่นที่ใช้งานง่าย แต่ทรงพลังออกแบบสร้างสรรค์โดย Apple เพื่อใช้สร้างแอพพลิเคชั่นสำหรับ IOS, Mac, Apple TV และ Apple Watch
Share คลังความรู้ด้านเทคโนโลยี สารสนเทศ นวัตกรรมคอมพิวเตอร์ สอนเขียนโปรแกรม Php Java Html CSS Javascript C C++ Objective-C และอื่นๆ บนระบบปฏิบัติการ Window Linux Unix CentOS IOS Android
โดยผู้เขียนที่มีความเชี่ยวชาญเฉพาะ ให้บริการพื้นที่สำหรับนักเขียนที่ต้องการแบ่งปันความรู้ พร้อมให้คำปรึกษาแก่ผู้ที่สนใจ โดยไม่เสียค่าใช้จ่าย