함수 (Function)
- 함수는 독립적인 코드 블록으로, 특정 작업을 수행하고 값을 반환하거나 부가적인 기능을 한다.
- 전역 범위에서 정의되거나 특정 타입 내에 포함될 수 있다.
- 함수는 'func' 키워드를 사용하여 정의되며, 함수 이름, 파라미터, 반환 타입 및 실행할 코드를 포함한다.
메서드 (Method)
- 메서드는 특정한 타입에 속함 함수로, 해당 타입의 인스턴스에 의해 호출된다.
- 메서드는 해당 타입의 인스턴스에 대해 작동하거나 변경하는 데 사용된다.
- 메서드는 함수와 비슷한 구문을 가지지만, 특정 타입에 속해 있으며 해당 타입의 인스턴스를 수정할 수 있다.
함수 선언
- 함수 이름은 유니크해야 한다.
- 파라미터와 반환 유형은 선택적이다. (없어도 된다.)
func 함수이름(파라미터1: 타입, 파라미터2: 타입) -> 반환타입 {
// 함수의 본문
return 반환값 // 반환 값이 있는 경우 - 반환타입과 동일해야한다.
}
파라미터
- 함수는 0개 이상의 파라미터를 가질 수 있다.
- 파라미터는 함수 호출 시 전달되는 값이며, 함수 본문 내에서 사용된다.
- 파라미터는 이름과 타입으로 구성된다.
반환 값
- 함수가 값을 반환하는 경우, 반환 타입을 선언해야한다.
- 반환 타입은 함수의 실행 결과를 나타내며, 함수 실행이 완료되면 반환된다.
- 반환 타입이 없는 경우 'Void'를 사용하거나 생략할 수 있다.
함수 호출
- 함수를 호출할 때는 함수 이름을 사용하고, 괄호 안에 전달할 인수를 나열한다.
- 함수 호출 결과는 변수에 할당하거나 다른 표현식 내에서 사용할 수 있다.
let 결과 = 함수이름(전달값1, 전달값2)
내부 및 외부 파라미터 이름(Internal and External Parameter Names)
- 함수 정의(선언) 시 파라미터에 내부 및 외부 이름을 지정할 수 있다.
- 내부 이름은 함수 내에서 사용되는 파라미터의 이름이며, 외부 이름은 함수를 호출할 때 사용되는 이름이다.
func exampleFunc(externalName internalName: String) -> String {
return internalName
}
var name: String = "홍길동"
name = exampleFunc(externalName: "홍길동아니다")
print("저는 \(name) 입니다.")
// 저는 홍길동아니다 입니다.
파라미터 레이블 제외
- '_'(언더바)로 파라미터를 변경하면 인수 레이블에 이름 지정을 삭제할 수 있다.
func exampleFunc(_ internalName: String) -> String {
return internalName
}
var name: String = "홍길동"
name = exampleFunc("홍길동아니다")
print("저는 \(name) 입니다.")
// 저는 홍길동아니다 입니다.
파라미터 기본 값
- 파라미터에 기본값을 할당할 수 있다.
func exampleFunc2(x: Int, y: Int = 5) {
print("x: \(x)")
print("y: \(y)")
}
exampleFunc2(x: 3)
// x: 3
// y: 5
exampleFunc2(x: 3, y: 8)
// x: 3
// y: 8