본격적으로 내일배움캠프 과정이 시작됬다
이번주부터 Swift 문법부터 공부를 시작한다.
기본 문법을 공부하던 중 평소 헷갈리던 함수와 메서드의
개념 차이를 보다 명확하게 정리하려고 한다
우선 각 정의부터 살펴보자
함수
- 독립적으로 정의되며, 특정한 객체나 타입에 속해 있지 않다. 일반적으로 전역범위 또는 특정 범위내에서 정의된다.
함수의 기본적인 정의다. 다음은 함수의 작성법이다.
func 함수이름(아규먼트_레이블: 파라미터_타입) -> 리턴_타입 {
코드
}
코드 형식이고 실제로는 다음과 같이 작성한다
func sayHi(friend: String) {
print("Hi~ \(friend)!")
}
sayHi(friend: "영호")
func
키워드로 시작하여 작성하고
함수명(파라미터)
식으로 호출하여 사용한다.
위 코드의 함수 실행 결과는
Hi~ 영호!
가 나온다
이제 메서드에 대해서 살펴보자
메서드
- 클래스, 구조체, 열거형 등의 특정한 타입에 속하는 함수. 객체 지향 프로그래밍에서 해당 객체의 특정 기능을 수행하기 위해 사용된다
여기서 중요한 점은 메서드 또한 한 종류의 함수라는 점이다.
다만 특정 타입에 속한다는 점이 다르다.
또한, 함수는 직접적으로 함수명으로 호출하여 사용하는 것과 다르게 메서드는 해당하는 객체 도는 타입에 대해서 호출된다.
student.sayHi()
같은 형식을 띈다.
위의 내용들을 간단히 정리하자면
함수
와 메서드
모두 함수의 일종이지만
함수
는 독립적으로 정의 및 호출이 되고
메서드
는 특정 타입에 속하며, 해당 타입의 인스턴스에 대해 작동하고 상태를 변경 한다는 점에서 다르다.