오버로딩

라무·2023년 8월 9일

정의

💡 이름이 같아도 매개변수의 갯수, 타입, 순서를 다르게 해서 같은 이름으로도 여러 개의 함수를 정의할 수 있는 것을 말한다.
  • 같은 클래스내에서 사용한다
  • swift는 오버로딩을 허용하며, 함수 & 서브스크립트 & 생성자에서 사용할 수 있다

장점

  • 프로그램의 유연성을 높인다
  • 결과적으로 코드를 깔끔하게 하는 효과가 있다

예시

  1. 두개의 함수를 동일한 형식으로 선언했을 경우 → 당연히 에러 발생

    func sum(a : Int, b: Int) -> Int { return 0 }
    func sum(a : Int, b: Int) -> Int { return 0 } //에러발생
  2. 형식을 다르게 선언했을 경우 → 에러가 발생하지 않음

    func sum() {}
    func sum(a: Int, b: Int) -> Int { return 0 } 

결론

  • 함수를 식별할 때는 단순히 함수 이름만 보고 하는 것이 아니라 함수의 이름, 파라미터(타입, 갯수, 등), 리턴타입을 모두 종합해서 함수를 식별한다!
  • 즉, 함수의 이름이 동일하더라도 리턴타입, 파라미터 타입, 파라미터 갯수, 파라미터의 argument label 등 중에 하나라도 다르다면 모두 다른 함수가 된다

참고한 사이트

  • 큰돌 cs면접 가이드

Swift) 오버로딩(Overloading) vs 오버라이딩(Overriding)

profile
ios 개발을 하고있는 라무의 사적인 기술 블로그

0개의 댓글