안녕하세요:)
오늘은 자주 사용하는 기능을 함수로 만들고 재사용하는 방법에 대해서 알아보도록 하겠습니다.
Function은 프로그램의 실행 과정 중에서 독립적으로 처리될 수 있는 부분을 분리하여 구조화한 객체를 의미합니다.
이렇게 독립적으로 작성된 함수는 여러 번 호출하여 사용할 수 있어서 같은 코드를 작성할 필요가 없다는 장점을 가지고 있습니다.
그럼 Swift에서 사용하는 Function에 대해서 알아볼까요?
func name(parameters) -> ReturnType { // function Head
statement // function body
}
name(parameterts) // 함수 호출
func printHello() {
print("안녕하세요")
}
printHello() // 안녕하세요
func add() -> Int {
return 10 + 20
}
add() // 30
func sayHello() -> String {
return "반가워요"
}
sayHello() // 반가워요
func doSomething() {
let r = Int.random(in: 0...100) // 1~100까지의 랜덤 숫자 생성
if !r.isMultiple(of: 2) {
return // r이 홀수이면 함수의 실행을 중지
}
print(r)
}
doSomething()
func name(매개변수: 자료형...) {
statement
}
func add(a: Int, b: Int) -> Int {
// ex) a = 10 파라미터는 함수 바디에서 사용할 수 있는 임시 상수입니다. 값 변경 불가!
return a + b
}
add(a: 10, b: 20) // 30
func echo(message: String, newline: Bool = true) { // 기본값 저장
if newline == true {
print(message, true)
} else {
print(message, false)
}
}
func printHello(name: String, msg: String) {
print("\(name)님, \(msg)")
}
printHello(name: "동구", msg: "안녕하세요") // 동구님, 안녕하세요
func printHello(to name: String, welcome msg: String) {
print("\(name)님, \(msg)")
}
printHello(to: "동구", welcome: "안녕하세요") // 동구님, 안녕하세요
func sayHello(_ name: String) { //Argument를 와일드카드 패턴으로 생략했습니다.
print("Hello, \(name)")
}
sayHello("Swift") // Hello, Swift
func sum(_ nums: Int...) {
var sum = 0
for num in nums {
sum += num
}
print(sum)
}
sum(1, 2, 3, 4, 5) // 15 Argument 5개