본문 바로가기

개발

Swift 함수 (Functions)

728x90

Swift 함수 (Functions in Swift)

Swift 함수는 코드를 재사용 가능한 모듈로 묶어 프로그램을 구성하고 코드를 더욱 명확하고 간결하게 작성하는 데 도움이 되는 기본적인 구성 요소입니다.

1. 함수 선언 (Function Declaration)

func functionName(parameter1: parameterType1, parameter2: parameterType2) -> returnType {

  // 함수 내용

}
  • func 키워드는 함수 선언을 시작합니다.
  • functionName은 함수의 이름입니다.
  • parameter1, parameter2는 함수의 매개변수이며, 각 매개변수에는 타입(parameterType1, parameterType2)을 지정합니다.
  • ->는 함수의 반환 타입을 나타냅니다. 반환 타입이 없는 경우 생략할 수 있습니다.
  • {와 }로 묶인 영역은 함수의 내용을 나타냅니다.

예시:

func greet(name: String) -> String {

  return "안녕하세요, \(name)님!"

}



let message = greet(name: "사랑")

print(message)   // "안녕하세요, 사랑님!"

2. 함수 매개변수 (Function Parameters)

  • 함수는 여러 개의 매개변수를 가질 수 있습니다.
  • 매개변수에 기본값을 설정할 수 있습니다.
func calculateArea(width: Double, height: Double = 10.0) -> Double {

  return width * height

}


let area1 = calculateArea(width: 5.0)   // 50.0

let area2 = calculateArea(width: 5.0, height: 20.0)   // 100.0

 

3. 함수 반환값 (Function Return Values)

  • 함수는 값을 반환할 수 있습니다.
  • 여러 개의 값을 반환하려면 튜플을 사용할 수 있습니다.
func swapValues(a: Int, b: Int) -> (Int, Int) {

  return (b, a)

}



var x = 10

var y = 20



(x, y) = swapValues(a: x, b: y)

print(x)   // 20

print(y)   // 10

 

4. 함수 종류 (Types of Functions)

  • 일반 함수 (Normal Function): 위에서 설명한 일반적인 함수입니다.
  • 입력 매개변수 없는 함수 (Function Without Input Parameters): 매개변수 없이 값을 반환하거나 작업을 수행하는 함수입니다.
func currentTime() -> String {

  let formatter = DateFormatter()

  formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"

  return formatter.string(from: Date())

}



let now = currentTime()

print(now)   // 2024-07-05 10:16:23

 

  • 변환 함수 (Mutating Function): 함수 내에서 인스턴스 변수의 값을 변경하는 함수입니다.
struct Person {

  var name: String

  var age: Int



  mutating func growUp() {

    age += 1

  }

}



var person = Person(name: "사랑", age: 30)

person.growUp()

print(person.age)   // 31

 

5. 함수 활용

  • 함수를 사용하면 코드를 재사용하고 프로그램을 더욱 명확하고 간결하게 작성할 수 있습니다.
  • 함수를 사용하면 코드를 테스트하고 디버깅하기 쉬워집니다.
  • 함수를 사용하면 복잡한 로직을 작은 함수 단위로 나누어 이해하기 쉬워집니다.

6. 참고 자료