//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 |