혼동하기 쉬운 용어인 파라미터(인자, 매개변수)와 아규먼트(인수, 실행인자)를 정리해본다.
먼저 함수의 구조를 알아야한다.
함수 기본구조
func functionName(argumentLabel parameterName: Type) { functionBody }
func 함수명(외부-매개변수명 내부-매개변수명: 타입) {함수바디}
func sayHello(to name: String) {
print("Hello, \(name)") // 함수 내부 -> parameter name 으로 접근
}
sayHello(to: "Jaby") // 외부 -> argument label 로 접근
func sayHello(_ name: String) { // argument label _ 로 생략가능
print("Hello, \(name)")
}
sayHello("Jaby") // 함수에도 없으니까 argument label 없이 호출 가능
func sayHello(name: String) { // parameter name 이 argument label 로 사용된 경우
print("Hello, \(name)")
}
sayHello(name: "Jaby") // argument label로 사용된 parameter name(name)을 선언해야함
+ 이름짓기 (코드 가독성)
함수명은 함수역할을 설명하는 동사(또는 명사)로 짓는다. Argument Label 은 to, in, with, at 과 같은 전치사로 짓는다. Parameter Name 은 명사로 짓는다.