[ Swift ] 함수

스위프트 함수 사용법
김보람's avatar
Sep 30, 2024
[ Swift ] 함수

[ 함수 기본 ]

  • 함수의 기본 형태

    //기본형태
    func 함수이름 (매개변수: 변수타입) -> 반환타입 {
        함수 구현부
        retun 반환값
    }
    
    func getName (firstName:String, lastName:String) -> String {
        return firstName + lastName
    }
    
  • 반환값이 없는경우

    //리턴하는 값이 없는경우
    func 함수이름 (매개변수: 변수타입) -> Void {
        함수 구현부
        reutn 반환값
    }
    
    func sum (a:Int, b:Int) -> Void {
        print(a+b)
    }
    
    // 리턴값이 없는경우 반환타입의 생략이 가능하다
    func sum (a:Int, b:Int) {
        print(a+b)
    }
  • 매개변수가 없는경우

    //매개변수가 없는 경우
    func 함수이름 () -> 반환타입 {
        함수구현부
        return 반환값
    }
    
    func maximumIntegerValue() -> Int {
        return Int.max
    }
  • 매개변수와 반환값 모두가 없는경우

    func 함수이름 () -> Void {
        함수 구현부
        return
    }
    
    func hello () -> Void {
        print("Hello")
    }
    
    // 반환값이 없는경우 반환타입 생략가능
    func hello () {
        print("Hello")
    }


[ 함수 고급 ]

  • 매개변수 기본값

    • 매개변수가 들어오지 않을경우 디폴트로 설정해둘 수 있음

      func 함수이름 (매개변수명: 매개변수 타입 = 디폴트값) -> 반환타입 {
          함구구현부
          return
      }
      
      func getName (name:String = "철수") -> Void {
          print(name)
      }
      
      getName() //철수 출력
      getName(name:"영희") //영희 출력
  • 전달인자 레이블

    • 함수를 호출할때 인자를 좀 더 명확하게 알 수 있도록 하기위해 사용한다

      //기본적으로 아래의 형태를 가진다
      func 함수이름(아규먼트레이블 파라미터이름: 파라미터타입) {
          // 함수 내부 코드
      }
      
      
      //만약 아래의 경우
      func move(start: String, end: String) {
          print("Moving from \(start) to \(end)")
      }
      
      //이와같이 호출하게 되는데
      move(start: "Seoul", end: "New York")
      
      // 이때 start와 end만 보고서는 내용 자체를 이해하기 어렵다 사작하고 끝내는건지
      // 오고가는건지등등 호출 구문에서 좀 더 명확하게 알기위해 아래와 같이 수정할 수 있다.
      
      func move(from start: String, to end: String) {
          print("Moving from \(start) to \(end)")
      }
      
      move(from: "Seoul", to: "New York")
      
      // 이처럼 사용하면 from이 출발지를 to가 목적지를 의미한다는것을 좀 더 명확히 알 수 있다
    • 주의점은 호출시 사용하는 이름과 함수 구현부에서 사용하는 이름이 다르다는 점을 인지하자

  • 가변 매개변수

    • 전달되는 인자의 수가 명확하지 않을때 사용할 수 있다

    • 아래와 같은 형태를 가진다

      func 함수이름(파라미터명: 파라미터타입...) {
          // 함수 본문
      }
    • 함수당 하나만 가질 수 있고 맨뒤쪽에 작성하는것을 권장한다

    • 함수내에서는 배열로 처리된다

      func sumOfNumbers(numbers: Int...) -> Int {
          print(numbers) // 출력[1, 2, 3, 4, 5]
          var sum = 0
          for number in numbers {
              sum += number
          }
          return sum
      }
      
      let result = sumOfNumbers(numbers: 1, 2, 3, 4, 5)
      print(result) // 출력: 15
    • 주의점은 매개변수를 가지는 함수는 그 자체로 변수에 할당할 수 없다는 점이다

Share article

b0-0d