[Swift] function vs method
replaceSubrange(_:, with:)
문서를 보다가 눈에 띄인 하나의 함수..
var nums = [10, 20, 30, 40, 50]
nums.replaceSubrange(1...3, with: repeatElement(1, count: 5))
with
안에 인자로 들어가는 repeatElement(1, count: 5)
는 뭔데 저렇게 맥락 없이 바로 호출할 수 있는거람..?
공식 문서를 찾아가보자 ㄱㄱ
흠냐리 흠냐.. Collections
안에 있군..?
그럼 뭐 Array.repeatElement(1, count: 5)
처럼 앞에 .
이라도 찍고 사용해야하는거 아니여??
요 함수가 맥락에 관련없이 냅다 repeatElement(1, count: 5)
처럼 사용할 수 있다는걸 문서에서 어떻게 알 수 있는건데??
흠.. 다른 애들은 문서에서 어떻게 보이나 확인해보자
Instance method
var nums = [10, 20, 30, 40, 50]
nums.replaceSubrange(1...3, with: repeatElement(1, count: 5))
인스턴스 생성 후에 .
찍고 사용가능한 애들은 Instance Method 라고 나오는군
Type method
Int.random(in: 1..<100)
인스턴스 생성없이 타입에서 바로 .
찍고 접근 가능한 애들은 Type method 라고 나오고
Function
max(1,2)
type(of: 1)
오..? 맥락 없이 냅다 사용할 수 있는 애들은 Function 이라고 나오네..??!
뭔가 옛날 옛적에 method 는 타입 안에 있는 거고, function 은 그게 아닌거라고 들은 것도 같고…?
분명 이런건 이론 초반에 들었을 텐데 내가 기억할리 없지 ㅎㅎ ㅎㅎ
튼 키워드는 대충 잡은거 같으니 구글링 ㄱㄱ
문서 바로 나오구요? ㅜ
Methods are functions that are associated with a particular type.
function 중에서도 struct, enum, class 등 특정 type 과 관련된 function을 method 라고 부르는구만
그래서 모든 method 는 function 이지만! 모든 function 은 method 가 아닌! 요런 느낌!
결국 repeatElement
는 method 가 아닌 function 이어서 .
안찍고 맥락 없이 호출 가능한거였고, 이렇게 쓸 수 있다는걸 문서에서는 Generic Function 으로 유추할 수 있었던거였슴!
역시 내가 몰랐을 뿐 모든게 나와있는 문서~
오늘도 신기했다~ 그럼 20000!