func 이라는 키워드로 생성되는 것은 모두 함수이다!
func travel() {
print("stranger")
print("First Time")
}
이런 방식으로 사용된다!!
func 키우워드로 생성하면 하나의 값으로도 사용이 가능해진다.
스위프트에서 함수는 다른 언어들보다 훨~~씬 다양한 모습으로 존재한다!
그러면 메서드는 도대체 뭘까?
class Seoul {
func travel() {
print("stranger")
print("First Time")
}
}
클래스, 구조체, 열거형에 포함되어 있는 '함수'를 의미한다.
즉 메서드도 func으로 시작하는 애들을 의미하는데, 그걸 어떤 상황에서~ 어떤 위치에서 쓰는지에 따라 '함수' 혹은 '메소드'라고 불리는 것! 둘 다 함수 형태니까~ 그냥 함수로 보겠다! (함수가 메소드보다 더 범위가 넓다!)
간단하게 이야기하면
클로저는 익명함수라고 한다! func 를 사용해서 이름 붙여주는 함수도 모두 클로저라고~
함수 이름 매개변수 반환타입(return type) 등을 사용해 함수를 정의한다
매개변수란?
매개변수는 함수를 정의할 때 외부로부터 받아들이는 전달 값의 이름을 의미한다! 전달인자(Argument), 혹은 인자라는 애는 실제 호출할 때 전달하는 값을 말한다!
func work(subject: String)-> String {
// 실행구문
return "work \(subject)"
}
여기서~ 매개변수는 subject이고! 실제 사용시 전달받는 값은 String 타입의 어떤 값일 것이다!
private func work(subject: String)-> String {
// 실행구문
return "work \(subject)"
}
let workBaking: String = work(subject: "baking")
}
이런 방식으로! 실제 사용시 전달받는 값인 baking 이 전달인자가 된다~~
+전달인자 레이블 : 전달인자 레이블 왜 쓰지? 이걸 지정하면 함수 외부에서 매개변수의 역할을 좀 더 명확하게 할 수 있다고!
func 함수이름(전달인자 레이블 / 매개변수 이름: 매개변수 타입, 전달인자 레이블 / 매개변수이름 :
매개변수타입) -> 반환타입 {
실행구문
return 반환값
}
참고자료
https://babbab2.tistory.com/77
야곰의 스위프트 프로그래밍 3판