Function without Parameters and Return Value
การสร้าง function จะขึ้นต้นด้วย keyword func
แล้วตามด้วยชื่อของ function แล้วด้วย ()
และปิดด้วย {}
โดยข้างใน {}
จะเป็นส่วนที่ function นั้นทำงาน
func sayHello() {
print("Hello, Swift!")
}
Calling the function
การเรียกใช้งาน function
// Calling the function
sayHello() // Hello, Swift!
Function with Parameters and Return Value
function แบบนี้ก็จะเป็นประเภทที่เราสามารถส่งเข้าไปทำงานใน function จากนั้นก็จะได้ค่ากลับมา
func add(a: Int, b: Int) -> Int {
return a + b
}
let sum = add(a: 5, b: 3)
print("Sum is \(sum)")
Function with External and Internal Parameter Names
ในภาษา Swift เราสามารถกำหนดชื่อให้กับ parameter ภายในและภายนอก function ได้ อย่างเช่นตัวอย่าง function greet
ที่รับ name
, hometown
เป็นชื่อ parameter ที่ไว้ใช้งานใน function แต่ภายนอก function เราสามารถกำหนดชื่ออื่นได้ เช่น person
, from
func greet(person name: String, from hometown: String) {
print("Hello, \(name)! Glad you could visit from \(hometown).")
}
greet(person: "Alice", from: "New York")
ในบางครั้งเราอาจจะไม่อยากได้ชื่อ parameter ภายนอก ก็สามารถใช้ _
เพื่อละเว้นได้
func add(_ a: Int, _ b: Int) -> Int {
return a + b
}
let sum = add(5, 3)
print("Sum is \(sum)")
Default Parameter Values
Default Parameter ก็คือการกำหนดค่าตั้งต้นให้กับ parameter นั้นๆ บางครั้งเราอาจจะไม่ได้ส่งค่าไปให้ function ก็จะใช้ค่าตั้งต้นแทน
func greet(_ name: String, withMessage message: String = "Hello") {
print("\(message), \(name)!")
}
greet("Bob")
greet("Charlie", withMessage: "Hi")
Variadic Parameters
คือ function ที่ไม่ได้กำหนดจำนวน Parameter ที่แน่นอน
func sum(numbers: Double...) -> Double {
var total: Double = 0
for number in numbers {
total += number
}
return total
}
let result = sum(numbers: 1.0, 2.0, 3.0, 4.0)
print("Sum is \(result)")
Function as a Parameter
เราสามารถส่ง function เป็น parameter ได้ เช่น
ตัวอย่าง เราจะส่ง function add
และ function multiply
ไปทำงานใน function calculate
ก็จำเป็นต้องกำหนด type และ parameter ต่างๆ ให้เหมือนกัน
// Define a function that takes two integers and returns their sum
func add(_ a: Int, _ b: Int) -> Int {
return a + b
}
// Define a function that takes two integers and returns their product
func multiply(_ a: Int, _ b: Int) -> Int {
return a * b
}
// The calculate function takes two integers and a function as parameters
func calculate(_ operation: (Int, Int) -> Int, _ a: Int, _ b: Int) -> Int {
return operation(a, b)
}
// Now, you can use the calculate function with different operations
let sum = calculate(add, 5, 3) // Pass the 'add' function as a parameter
let product = calculate(multiply, 4, 2) // Pass the 'multiply' function as a parameter
print("Sum: \(sum)")
print("Product: \(product)")
Nested Functions:
เราสามารถมี function ซ้อนอยู่ข้างใน function อีกทีได้เหมือนกัน
func outerFunction() {
func innerFunction() {
print("Inside the inner function")
}
print("Inside the outer function")
innerFunction()
}
outerFunction()