VesselWheel

In-Out paramters// 입출력 파라미터 본문

Xcode Study

In-Out paramters// 입출력 파라미터

JasonYang 2023. 10. 14. 07:57

import UIKit

 

// In-Out paramters

// 입출력 파라미터

 

// var <-- num1, num2 를 변수로 선언함

var num1 = 14

var num2 = 25

func swapNumber(_ n1: Int, with n2: Int){

    // parameter 는 함수 body 에서 사용하는

    // 임시 상수(constant)이므로 할당이 안 됨

    //  ㄴ parameter 값을 직접 변경할 수 없음

    /*

    var tmp = n1

    n1 = n2

    n2 = tmp

     */

}

swapNumber(num1, with: num2)

 

func test1(to num1: Int, with num2: Int){

  print("num1 :",num1,"num2 :",num2)

}

test1(to: num1, with :num2)

 

 

num1 = 14

num2 = 25

print("swapNumber2 함수 호출 전")

print("num1 :",num1,", num2 :",num2)

func swapNumber2(_ n1: inout Int, with n2: inout Int){

    // 함수 내부에서 함수 외부에 있는 변수의 값을 변경함

    var tmp = n1

    n1 = n2

    n2 = tmp

}

// & : 주소연산자

// n1에는 num1의 주소가 할당됨

// n2에는 num2의 주소가 할당됨

swapNumber2(&num1, with: &num2)

print("swapNumber2 함수 호출 후")

print("num1 :",num1,", num2 :",num2)

 

// let  <-- a, b 를 상수로 선언함

let a = 46

let b = 32

// 상수를 inout parameter 에 전달할 수 없음

// swapNumber2(&a, with: &b)

 

// literal data 도 inout parameter 에 전달할 수 없음

// swapNumber2(&10, with: &20)

 

 

/*

 

 inout parameter 에는 기본값을 할당할 수 없음

 func swapNumber3(_ n1: inout Int = 10, with n2: inout Int = num2){

    // 함수 내부에서 함수 외부에 있는 변수의 값을 변경함

    var tmp = n1

    n1 = n2

    n2 = tmp

}

 */

 

/* inout parameter 를 가변파라미터로 선언할 수 없음

 func test2(of nums: inout Int...){

 

 }

 */

'Xcode Study' 카테고리의 다른 글

function type - 함수의 자료형(2/2)  (0) 2023.10.16
function type - 함수의 자료형(1/2)  (1) 2023.10.14
가변 parameters(variadic parameters) / 4-4  (1) 2023.10.14
argument label  (0) 2023.10.14
parameter 가 있는 함수  (0) 2023.10.14