함수에서 헷갈리는 Argument Label / Parameter Name

임혜정·2024년 6월 24일
1
func 함수(⭐️아규먼트레이블 ⭐️파라미터네임: 파라미터타입) -> 아웃풋타입{
    // 함수 내부에서 parameterName을 사용
}

함수에서 파라미터 이름앞에 for parameter나 with parameter형식으로 들어오는 것들이 있는데 이 것이 의미하는 바가 무엇인가?

Argument Label과 Parameter Name 함수 또는 메서드에서 파라미터를 정의하고 사용할 때에 함수의 가독성과 사용성을 높인다.

Parameter Name, Argument Label을 동일하게 사용할 수도 있고 아규먼트는 생략할 수 있다.



  • 두 개에 동일한 이름을 사용하는 예
func 함수(이름: String, 고향: String) {
    print("\(이름)\(고향)에서 왔습니다")
}

함수(이름: "철수", 고향: "경기도")
  • Argument Label 생략
func 함수(_ 이름: String, from 고향: String) {
    print("\(이름)\(고향)에서 왔습니다")
}

함수("철수", 고향: "경기도")

// '이름'의 argument label이 _ 로 생략되었으며 따라서 
// 함수 호출 시 첫번째 파라미터는 레이블 없이 값만 전달.

Argument Label / Parameter Name 차이점

  • Parameter Name: 함수 내부에서 사용되는 파라미터의 이름.
  • Argument Label: 함수 호출 시 사용되는 파라미터의 이름.

func compareNumbers(_ a: Int, _ b: Int, ⭐️using operator: String) -> Bool {
    switch `operator` {
    case "==":
        return a == b
    case "!=":
        return a != b
    case "<":
        return a < b
    case "<=":
        return a <= b
    case ">":
        return a > b
    case ">=":
        return a >= b
    default:
        return false
    }
}

// 사용 예시
let result = compareNumbers(5, 3, using: ">")
print(result) // true

using 부분은 argument label로서 파라미터의 의미를 명확히 하기 위해 사용할 수 있다.

  1. with - 특정 값을 가지고 작업을 할 때
  2. for - 특정 목적이나 대상을 지정할 때
  3. by - 특정 방법이나 기준을 지정할 때
  4. as - 특정 역할이나 형식을 지정할 때

각 키워드에 개별적 기능이 있다기 보다 함수의 문맥(context)과 관련한 것인데 개발자 컨벤션처럼 파라미터 레이블을 팀내에서의 규칙을 설정해서 쓸 수 있다.

profile
오늘 배운걸 까먹었을 미래의 나에게..⭐️

0개의 댓글