Toy Project/Swift Language Syntax

2. Swift Function

개발자킹콩 2021. 1. 21. 16:22

//object의 멤버함수를 method, 전역함수를 function라고 한다.

func printTotalPrice(price: Int, count: Int){
  print("1. \(price*count)")
}
printTotalPrice(price: 1500, count: 5)

//이렇게 parameter를 지정해 주어야한다.
//지정안하고 보내는 방법이 존재한다. 
//어떻게? parameter 앞에 _를 붙힌다.
//parameter의 이름을 지정할 수 있는 형식이다.
//"가격"은 밖에서만, "price"는 함수 내에서만 사용가능!!!!

func printTotal1(_ price: Int, _ count: Int){
  print("2. \(price*count)")
}
printTotal1(1500, 5)

func printTotal2(가격 price: Int, 갯수 count: Int){
  print("3. \(price*count)")
}
printTotal2(가격: 1500, 갯수: 5)

//default value
func printTotalPriceDefault(price: Int = 1500, count: Int){
  print("4. \(price*count)")
}
printTotalPriceDefault(count: 5)

//retunr value
func totalPrice(price: Int, count: Int) -> Int {
  return price * count
}

//test1, 성, 이름을 받아서 fullname를 출력하는 함수 만들기
func printFullName1(first: String, last: String){
  print("\(first+last)")
}
printFullName1(first: "조", last:"영우")
//test2, 함수 호출 시 parameter 지정 없이 함수 만들기
func printFullName2(_ first: String, _ last: String){
  print("\(first+last)")
}
printFullName2("wh", "duddn")
//test3, 성, 이름을 받아 fullname return하는 함수 만들기
func printFullName3(성 first: String, 이름 last: String) -> String{
  return first+last
}
print(printFullName3(성: "Cho", 이름: "yeongwoo"))
print()

//함수의 고급기능 들

//1. overload : 함수의 이름은 같지만 parameter의 이름 또는 type가 달라서 다른함수로 취급

//2. In-Out : parameter는 복사된 constant이다. 값 바꾸면 에러뜬다. 그렇기에 inout키워드를 사용해서 바꾸자
//inout은 함수의 parameter에서, &는 함수호출시 변수의 주소값으로 인자전달하여 사용한다. inout과 &는 셋트다.
func incrementPrint(_ value: inout Int) {
  value += 1
  print(value)
}
var value = 3
// incrementPrint(value: &value) // _ value -> value 라면
incrementPrint(&value)

//3. 함수의 parameter로 함수를 넘기는 경우
//함수의 type는 인자정보와 return type이다. (Int, Int) -> Int
func add(_ a: Int, _ b: Int) -> Int {
  return a + b
}
func subtract(_ a: Int, _ b: Int) -> Int {
  return a - b
}

var function = add
print(function(4,2))
function = subtract
print(function(4,2))

func printResult(_ function: (Int, Int) -> Int, _ a: Int, _ b: Int) {
  print(function(a,b))
}
printResult(add, 5, 10)

'Toy Project > Swift Language Syntax' 카테고리의 다른 글

5. Swift Collection(Dicionary, Set)  (0) 2021.01.21
4. Swift Collection (Array)  (0) 2021.01.21
3. Swift Optional  (0) 2021.01.21
1. swift basic  (0) 2021.01.21
0. 나의 개인 공부 페이지다  (0) 2021.01.21