잡초의 일지

[Swift] function 함수 만들기 본문

[코딩] 배우는것/Swift

[Swift] function 함수 만들기

JabCho 2020. 7. 8. 16:30
728x90
반응형
SMALL

함수와 메서드의 차이

함수는 단독적으로 실행할 수 있다. 메서드는 오브젝트 안에서 써야 한다.

print가 대표적인 함수의 예.

 

코드

1. 파라미터가 없는 경우

func printMyName(){
    print("-->My name is Alice")
}

printMyName()

 

2. 파라미터가 하나인 경우

func printMultipleOfTen(value: Int){
    print("\(value) * 10 =\(value*10)")
}
printMultipleOfTen(value: 3)

 

3. 파라미터가 두개인 경우

func printTotalPrice(price: Int, num:Int){
    print("Total Price: \(price*num)")
}
printTotalPrice(price: 500, num: 3)

이렇게 쓰는것 말고도 , price랑 count를 쓰지 않고 싶으면, 

func printTotalPrice(_ price: Int, _ num:Int){
    print("Total Price: \(price*num)")
}
printTotalPrice(500, 3)

이렇게 해주면 된다.

 

또한, 파라미터의 이름을 명시해 줄 수 있다.

약간 알아보기 쉽게? ㅇㅇㅇ

func printTotalPrice(가격 price: Int, 갯수 num:Int){
    print("Total Price: \(price*num)")
}
printTotalPrice(가격: 500,갯수: 3)

이렇게 "가격" 과 "갯수" 라는 이름을 붙여서 사용할 수 있다.

func 전체출력된결과(가격 price: Int, 갯수 count:Int){
    print("Total Price: \(price*count)")
}
전체출력된결과(가격: 500,갯수: 3)

Swift는 이렇게 한글을 이용해서도 코딩이 가능하다. 함수 만들때마다 이름짓느라 고생 했는데, 한글로 써도 된다니..! 혁신적이다. 

 

4 . 파라미터가 디폴트값인 경우

func printTotalPriceWithDefaultValue(price: Int = 500, num:Int){
    print("Total Price: \(price*num)")
}
printTotalPriceWithDefaultValue(num: 6)
printTotalPriceWithDefaultValue(num: 3)
printTotalPriceWithDefaultValue(num: 5)
printTotalPriceWithDefaultValue(num: 1)
printTotalPriceWithDefaultValue(price: 1000, num: 2)	//price의 값이 다르면 이렇게 적어주면 된다.

내가 쓰는 파라미터의 값이 정해져 있는 경우, 위처럼 쓰면 된다.

그런데, 도중에 파라미터의 값을 바꾸고 싶으면, 원래 하던대로 price도 같이 써주면 된다.

 

5. 특정한 값을 리턴받고싶은 경우

func totalPrice(price: Int, num: Int) -> Int {
    let totalPrice = price * num
    return totalPrice
}
let calculatedPrice = totalPrice(price: 10000, num:5)
calculatedPrice		//50000 나옴.

-> Int 는  int 형으로 반환한다는 이야기다.

return totalPrice를 통해 함수에서 계산된 값을 반환해주었다.

함수를 이용해 계산하여 리턴한 값을 calculatedPrice 라는 변수에 넣어주고, 이것을 확인하면 값이 제대로 나오는것을 확인할 수 있다.

또한, 이런식으로 오버라이딩 할 수 있다.

 

6. 함수 안에서 값을 바꾸고 싶은 경우

함수 안에서 값을 바꿔주려면 "inout" 를 자료형 앞에 써야 한다. 

함수를 정의할 때 적어주는 저 value라는 변수는 constant변수이기 때문이다. 

밖에서 함수를 불러올 때 저 value값에 copy가 된다.

 

7. 함수를 파라미터로 받을 경우

func add (_ a: Int, _ b: Int) -> Int{
    return a+b
}
func printResult(_ function: (Int, Int)->Int, _ a: Int, _ b: Int){
    let result = function(a, b)
    print(result)
}
printResult(add, 10, 5)

 

----------------------------------------------------------------------------------------------------------------------------

함수는 한가지 일만 할 수 있는게 좋다!

----------------------------------------------------------------------------------------------------------------------------

728x90
반응형
LIST

'[코딩] 배우는것 > Swift' 카테고리의 다른 글

[Swift] Collection : Array  (0) 2020.07.09
[Swift] Optional 옵셔널  (0) 2020.07.08
[Swift] Tuple 튜플 사용  (0) 2020.07.07
[Swift] where의 사용  (0) 2020.07.07
[Swift] protocols 프로토콜이 뭐야?  (0) 2020.06.07
Comments