Bỏ qua để đến nội dung

Hàm (Function)

func sayHello() {
print("Hello, Swift!")
}
sayHello() // Gọi hàm
func greet(name: String) {
print("Hello, \(name)!")
}
greet(name: "Alice")
func sum(a: Int, b: Int) -> Int {
return a + b
}
let result = sum(a: 10, b: 20)
print(result) // 30
func greet(person name: String) {
print("Hello, \(name)!")
}
greet(person: "Alice") // 'person' là external label
func sum(_ a: Int, _ b: Int) -> Int {
return a + b
}
sum(10, 20) // Không cần label
func greet(name: String = "Guest", greeting: String = "Hello") {
print("\(greeting), \(name)!")
}
greet() // Hello, Guest!
greet(name: "Alice") // Hello, Alice!
greet(name: "Bob", greeting: "Hi") // Hi, Bob!
func sum(_ numbers: Int...) -> Int {
var total = 0
for number in numbers {
total += number
}
return total
}
print(sum(1, 2, 3)) // 6
print(sum(1, 2, 3, 4, 5)) // 15
func increment(_ value: inout Int) {
value += 1
}
var count = 5
increment(&count)
print(count) // 6
func minMax(array: [Int]) -> (min: Int, max: Int) {
return (array.min()!, array.max()!)
}
let result = minMax(array: [1, 5, 3, 9, 2])
print("Min: \(result.min), Max: \(result.max)")
func findIndex(of value: Int, in array: [Int]) -> Int? {
for (index, item) in array.enumerated() {
if item == value {
return index
}
}
return nil
}
if let index = findIndex(of: 5, in: [1, 3, 5, 7]) {
print("Found at index: \(index)")
}
func add(a: Int, b: Int) -> Int {
return a + b
}
var mathFunction: (Int, Int) -> Int = add
print(mathFunction(5, 3)) // 8
func calculate() -> Int {
func add(a: Int, b: Int) -> Int {
return a + b
}
return add(a: 5, b: 3)
}
print(calculate()) // 8
Swift Kotlin Ghi chú
func name() fun name() Keyword khác
-> Int : Int Return type
name: String name: String Parameters giống
_ name: String name: String No label
inout Không có Pass by reference

  • func keyword để định nghĩa
  • -> Type cho return type
  • External và internal parameter names
  • _ để bỏ external label
  • Default parameters
  • Variadic parameters với ...
  • inout cho pass by reference
  • Tuples cho multiple return values
  • Functions là first-class citizens