6-2. 라벨과 파라미터(Label, Parameter)

🌈 devleeky16498·2022년 4월 12일
0

함수의 각 파라미터는 인자 라벨(Argument Label)과 파라미터 이름(parameter name)을 가지고 있다. 인자 라벨은 함수가 호출될 떄 사용되고, 각 인자는 함수 호출 시 인자 라벨 다음에 작성한다. 파라미터 이름은 함수를 구현 시 사용된다.

라벨과 파라미터

  1. 모든 파라미터는 유니크한 이름을 가져야 한다. 여러 파라미터에 동일한 인자 라벨을 가질 수 있지만, 유니크한 인자 라벨은 코드를 읽기 편하게 도와준다.
func someFunction(firstParameter : Int, secondParameter : Int) {
...
}
//다음 함수의 파라미터 이름과 같이 알아볼 수 있도록 작성한다.
  1. 인수 라벨의 지정은 공백으로 구분하여 파라미터 이름 앞에 인자 라벨을 작성한다.
func someFuction(argumentLabel parameterName : Int) {
...
}
//다음 파라미터 위치에서 보듯이 첫 아규먼트 레이블이 인수라벨, 다음이 파라미터명이다.
  1. 인수라벨을 원치 않으면 명시적 인수라벨 대신에 언더바 (_)를 작성한다.
func someFunction(_ firstParameter : Int, secondParameter : Int) {
...
}
someFuction(1, secondParameter : 2)
//다음과 같이 함수를 호출 할 때 언더바로 인수라벨을 가진 친구는 파라미터 명칭을 생략한다.
  1. 파라미터의 기본 값은 파라미터 타입의 뒤에 값을 할당해서 지정된 값을 전달할 수 있다.
func someFunction(parameterWithoutDefault : Int, parameterWithDefault : Int = 12) {
...
}
someFunction(parameterWithoutDefault : 3, parameterWithDefualt : 6)
//이렇게 하는 경우 파라미터 값은 6을 전달하지만,
someFunction(parameterWithoutDefault : 6)
//이렇게 하는 경우에는 기본값 12를 전달하게 된다.
  1. 가변 파라미터는 0개 이상의 특정 타입의 값을 허용한다. 함수가 호출될 때 여러개의 입력값이 전달될 수 있는 특정 파라미터는 가변 파라미터를 사용한다. 가변 파라미터는 타입 이름 뒤에 ...을 사용해서 작성한다.
func arithmeticMean(_ number : Double...) -> Double {
	var total : Double = 0
    for number in numbers {
    	total += number
    }
    return total / Double(numbers.count)
}

arithmeticMean(1, 2, 3, 4, 5)
//이렇게 하는 경우에는 입력된 모든 number 파라미터 값을 통해 배열로 계산하여 그 결과값을 리턴한다. 
//정답은 3.0을 리턴한다.
  1. 함수의 파라미터는 기본적으로 상수이다. 따라서 함수 바디내에서 함수 파라미터 값을 변경할 수 없다. 함수의 파라미터 값을 변경해야 하고 이를 유지하고 싶다면 in-out 파라미터를 사용하는 것이 효과적이다. in-out 파라미터는 기본 값을 가질 수 없으며, 가변 파라미터는 inout으로 표기할 수 없다.
func swapTwoInts(_ a: inout Int, _ b : inout Int) {
	let temporaryA = a
    a = b
    b = temoraryA
}
//위의 함수는 간단히 b를 a로 a를 b로 바꾼다. 

var someInt = 3
var anotherInt = 107
swapTwoInts(&someInt, &anotherInt)
//다음과 같이 함수 밖에서 선언된 변수에 대해서 함수를 통해 값을 변경해주는 것도 가능하다.
profile
Welcome to Growing iOS developer's Blog! Enjoy!🔥

0개의 댓글