iOS 관련 공부

함수의 형태

가애야 2024. 12. 24. 11:06

1) 함수가 인풋(input)이 있는 경우

// 함수 정의문
func saySomething(name: String) {
    print("안녕하세요 \(name) 님")
}



// 함수 실행문(call)
saySomething(name: "스티브")

name: String  파라미터 Parameter(매개변수/인자)

name: "스티브"  아규먼트 Argument(인수)

 

인풋이 있는 경우 어떤 타입으로 작성하는지 명시

 

 

2) 함수가 아웃풋(output)이 있는 경우 - 결과값이 나오는 경우

// 아웃풋 앞에 return이라는 키워드를 사용해야 한다.

func sayHelloString() -> String {
    return "안녕하세요"
}



sayHelloString()



print(sayHelloString() + " 잡스 님")



// 함수를 호출하는 것도 표현식이 될 수 있다.(리턴형이 있는 경우)
// (표현식의 결과는 함수가 리턴하는 값)

var name1 = sayHelloString()

 

 

3) 인풋과 아웃풋이 모두 있는 경우

// 함수 정의문
func plusFuntion(a: Int, b: Int) -> Int {
    let c = a + b
    return c       // 아웃풋이 있는 경우, 리턴키워드를 사용해야함
}



// 함수 실행문(call)
plusFuntion(a: 3, b: 4)



print(plusFuntion(a: 5, b: 6))

함수에서 아웃풋은 반드시 하나의 타입만 나올 수 있다.

 

 

 

 

Void 타입의 이해 (아웃풋이 없는 경우)

func sayhello1() {
    print("Hello, Swift!")
}


func sayhello2() -> Void {   // void 빈 
    print("Hello, Swift!")
}



func sayhello3() -> () {
    print("Hello, Swift!")
}

리턴형이 없는 경우 세가지 모두 가능

 

 

 

 

리턴 타입이 없는 함수(Void 타입) vs 리턴타입이 있는 함수의 차이

 

리턴 타입이 없는 함수 ➞ 결과는 Void 타입

sayhello1()         // 제어권



// 이렇게 사용하는 경우는 없음
//var hello: Void = sayhello1()

 

 

리턴 타입이 있는 함수 ➞ 결국 결과로 "값"이 있는 것 ➞ (일반적으로)사용

// 함수 자체를 값으로 볼 수 있음

print(sayHelloString())       // 제어권 + 결과값

 

 

 

 

 

 

 

 

퀄럭퀄럭!!!! 독감으로 아직도 힘든 나