/코드스니펫/ 함수의 기본 사용방법
// 함수의 기본 사용방법
// 함수의 정의(선언)
func 함수이름(파라미터 이름: 파라미터 타입) -> 반환타입 {
// 구현부
return 반환 타입의 값
}
// 파라미터가 여러개인 경우
func 함수이름(파라미터1 이름: 파라미터1 타입, 파라미터2 이름: 파라미터2 타입) -> 반환타입 {
// 구현부
return 반환 타입의 값
}
// 파라미터가 없는 경우
func 함수이름() -> 반환 타입 {
// 구현부
return 반환 타입의 값
}
// 반환값이 없는 경우
func 함수이름(파라미터 이름: 파라미터 타입) {
// 구현부
// 반환타입이 없기때문에 return이 없어도 됩니다.
// 반환타입이 없는데 중간에 함수를 탈출하고 싶을 때 return을 사용할 수 있습니다.
}
// 파라미터가 없고, 반환값도 없는 경우
func 함수이름() {
// 구현부
}
함수는 재사용이 가능한 코드의 집합으로, 특정 작업을 수행하는 코드 블록입니다.
[코드스니펫] 함수의 기본 사용방법
// 함수의 기본 사용방법
// 함수의 정의(선언)
func 함수이름(파라미터 이름: 파라미터 타입) -> 반환타입 {
// 구현부
return 반환 타입의 값
}
// 파라미터가 여러개인 경우
func 함수이름(파라미터1 이름: 파라미터1 타입, 파라미터2 이름: 파라미터2 타입) -> 반환타입 {
// 구현부
return 반환 타입의 값
}
// 파라미터가 없는 경우
func 함수이름() -> 반환 타입 {
// 구현부
return 반환 타입의 값
}
// 반환값이 없는 경우
func 함수이름(파라미터 이름: 파라미터 타입) {
// 구현부
// 반환타입이 없기때문에 return이 없어도 됩니다.
// 반환타입이 없는데 중간에 함수를 탈출하고 싶을 때 return을 사용할 수 있습니다.
}
// 파라미터가 없고, 반환값도 없는 경우
func 함수이름() {
// 구현부
}
[코드스니펫] 함수의 기본 실습
// 실제로 사용해 봅시다!
// 함수의 선언
func sayHello(name: String) -> String { // sayHello 이름의 함수를 정의합니다. 파라미터는 name이며 타입은 String이고, 함수의 반환값의 데이터타입은 String입니다.
return "\(name)님 안녕하세요!" // 파라미터 name을 사용하여 문자열을 만들어 반환합니다.
}
// 함수의 사용
sayHello(name: "Swift 기초반") // 결과값은 문자열로 "Swift 기초반님 안녕하세요!" 입니다.
// 함수의 선언
func printHello() {
print("안녕하세요!")
}
// 함수의 사용
printHello()
func add(a: Int, b: Int) -> Int {
return a + b
}
let result = add(a: 3, b: 5) // add 함수를 사용하여 받은 결과값을 result 상수에 할당합니다.
print(result) // 8
함수의 구현부에서 사용하는 이름과 함수 호출할 때 사용하는 이름을 다르게 설정할 수 있습니다.
기본적으로 함수의 선언부에서 정한 파라미터의 이름은 함수의 구현부와 호출부에서 동일하게 사용됩니다.
func sayHello(name: String) {
print("\(name)님 안녕하세요.")
}
sayHello(name: "수강생")
// sayHello 함수를 정의하는 곳에서 파라미터의 이름이 name이면
// sayHello 함수를 호출하는 곳에서도 파라미터의 이름은 name을 사용합니다.
Swift에서는 구현부에서 사용하는 파라미터의 이름과 호출부에서 사용하는 파라미터의 이름을 다르게 할 수 있습니다.
// 스페이스로 띄우고 파라미터 이름을 2개 입력하면 호출, 구현부 에서 사용하는 이름을 정할 수 있습니다.
func sayHello(to name: String) {
print("\(name)님 안녕하세요.")
}
// 함수를 정의한 곳에서 파라미터의 이름이 2개 있을 때 첫번째 값이 호출할때 사용하는 이름입니다.
sayHello(to: "수강생")
// _ 를 사용하여 파라미터의 이름을 생략할 수 있습니다.
// _는 보통 생략하는데 사용됩니다.
// 위에와 동일하게 정의하는 곳에서 파라미터 이름이 2개로 들어가 있습니다.(_, name)
func sayBye(_ name: String) {
print("\(name)님 안녕히가세요.")
}
sayBye("수강생")
Swift Convention Guide No.5 → 함수의 코드 스타일
// ✅ 함수의 이름은 messageToBirthday로 message to birthday 의 Camel Case
// ✅ 파라미터의 이름은 isTodayBirthDay로 소문자 Camel Case
func messageToBirthday(isTodayBirthDay: Bool) -> String {
// 구현부
}
// ❌ 함수의 이름이 소문자로 시작하지만 Camel Case가 아니여서 읽기 힘들어요.
// ❌ 파라미터의 이름이 소문자로 시작하지만 Camel Case가 아니여서 읽기 힘들어요.
func messagetobirthday(istodaybirthday: Bool) -> String {
// 구현부
}