본문 바로가기
Swift

함수와 메소드의 차이

by iOS 개린이 2023. 2. 6.

먼저 결론부터 짓고 가면 함수안에 메소드가 있는 형태다.

 

https://sujinnaljin.medium.com/swift-function-vs-method-ca76a0314484

 

 

메소드

-메소드는 클래스, 구조체, 열거형에 속해 있는 함수를 말한다.

-메소드의 종류에는 인스턴스 메소드와 타입 메소드가 있다고 이전에 배웠다.

 

인스턴스 메소드를 사용하기 위해서는 인스턴스를 만든 후 .을 통해 접근이 가능하고,

타입 메소드는 타입  . 을 통해 접근이 가능.

 

class Student {
   static func introduce1() {
       print("나를 소개")
   }
   
   func introduce2() {
       print("나를 소개")
   }
}

Student.introduce1()   //타입 메소드

let student = Student()
student.introduce2()   //인스턴스 메소드

 

 

함수

-클래스, 구조체, 열거형과 무관하고 재사용이 가능한 코드 뭉치라고 한다.

-메소드와 다르게 . 이 없어도 걍 사용이 가능함.

 

var nums = [10, 20, 30, 40, 50]
nums.replaceSubrange(1...3, with: repeatElement(1, count: 5))

 

위 코드를 보면 nums라는 배열의 인스턴스 .replaceSubrange()는 인스턴스 메소드이고,

with의 인자로 받는 repeatElement()를 사용할 때 .없이 걍 사용했는데, 이거시 바로 함수다.

 

 

공식문서를 보면 Function(함수)라고 정의되어 있는 것을 볼 수 있음. 

이렇게 함수는 . 없이 그냥 사용이 가능한 존재들.

 

 

 

Reference:

https://sujinnaljin.medium.com/swift-function-vs-method-ca76a0314484

https://developer.apple.com/documentation/swift/repeatelement(_:count:)

https://0ofkim.tistory.com/53

 

'Swift' 카테고리의 다른 글

열거형에 관하여 2  (0) 2023.02.17
열거형에 관하여  (0) 2023.02.15
Static과 Class에 관하여  (0) 2023.01.31
오버로딩(Overloading)에 관하여  (0) 2023.01.30
서브스크립트에 관하여  (0) 2023.01.28