[Swift] 함수

HongDuHyeon·2023년 3월 26일
1
post-thumbnail
주말에 혼자 회사 나오는 거... 오히려 좋아..

함수

함수는 작업의 가장 작은 단위이자 코드의 집합이다.
사용하는 가장 큰 이유는 반복적인 작업을 좀 더 빠르게 처리하기 위해 작업을 한다.

swift에서 기본적인 함수 작성 방법

func sum(sumA: Int, sumB: Int) -> Int {
	return sumA + sumB
}

sum(sumA: Int, sumB: Int)

함수를 작성하고 파라미터에 내가 넣고자 하는 데이터 타입을 넣어주고 함수를 호출할 땐 파라미터에 들어가는 값들의 타입도 함께 넣어서 호출해준다.

반환값이 없는 함수

func printName() -> Void{
    ...
}
func printName() {
    ...
}

반환 값이 없는 함수는 반환 타입에 Void를 적어주거나 생략해주면 된다.

기본값을 가진 함수

func greeting(friend: String, me: String = "Duhyeon") {
    print("Hello, \(friend)! I'm \(me)")
}

greeting(friend: "James")

// Hello, James! I'm Duhyeon

기본값을 지정해준다면 greeting 함수를 호출할 때 friend의 값만 넣어주면 된다.

전달 인자 레이블

func sendMessage(from myName: String, to name: String )-> String{
    return "hello, \(name)! I'm \(myName)"
}

sendMessage(from: "Duhyeon", to: "James")

전달 인자 레이블이란 함수를 정의할 때 매개변수를 정의하면 매개변수 이름과 전달인자 레이블 같은 이름으로 사용할 수 있지만 전달인자 레이블을 별도로 지정하면 함수 외부에서 매개변수의 역할을 좀 더 명확히 할 수 있다.

위 코드를 보면 전달인자 레이블을 지정해줘서 sendMessage를 호출 할 때 좀 더 명확한 코드를 볼 수 있는 장점이 있다.

전달인자 레이블을 사용하려면 함수 정의에서 매개변수 이름 앞에 한 칸을 띄운 후 전달인자 레이블을 지정한다.

만약 전달 인자 레이블을 사용하고 싶지 않다면 ?

func sendMessage(_ myName: String, _ name: String )-> String{
    return "hello, \(name)! I'm \(myName)"
}

sendMessage("Duhyeon", "James")

전달 인자 레이블 대신 "_" 와일드 카드 식별자를 붙혀서 사용하면 된다.

가변 매개 변수

swift는 매개 변수의 값이 몇개가 들어올 지 모를 때 가변 매개 변수를 사용할 수 있다. 가변 매개 변수는 0개 이상의 값을 받아올 수 있고, 가변 매개 변수로 들어온 값은 배열처럼 사용할 수 있다.
물론 함수마다 가변 매개 변수는 하나만 가질 수 있다.

func sendMessage(me: String, friends: String... )-> String{
    return "hello, \(friends)! I'm \(me)"
}

sendMessage(me:"Duhyeon", friends: "James", "Albert", "Stella")

// "hello, ["James", "Albert", "Stella"]! I'm Duhyeon"

여러개의 값이 들어가는 String 타입 뒤에 ...으로 표기해주면 가변 매개 변수가 된다. 이렇게 작성해준다면 여러개의 문자열을 넘겨 줄 수 있다.

profile
마음이 시키는 프론트엔드.. RN과 IOS를 곁들인..

0개의 댓글