Swift 기초문법 - In-out Parameters

2022. 9. 15. 20:27·IOS - Swift
반응형

📖 In-out Parameters

📌 In-out Parameter (인-아웃 파라미터)

swift 내 함수에서의 파라미터는 상수이므로, 함수 내에서 파라미터의 값을 변경하는 것은 불가능합니다. (실수로라도 파라미터의 값을 변경시킬 수 없습니다.) 하지만 In-out 파라미터 를 활용하면 함수 안에서 파라미터의 값을 변경하고, 함수 호출이 종료된 이후에도 변경된 값이 지속되게 됩니다.

inout 매개변수는 다음의 과정을 거치게 됩니다.
  1. 함수가 호출되면, 매개변수로 넘겨진 변수가 복사된다.
  2. 함수 몸체에서, 복사한 값을 수정한다.
  3. 함수가 반환될 때, 변화된 값을 원본 변수에 재할당한다.

이 동작을 copy-in copy-out 혹은 다른언어에서의 call by value result 라고 불리게 됩니다.


가장 일반적인 함수입니다.

func sayName(_ Name: String) {
   print("안녕! 나는 \(Name)라고 해.")
}
sayName("코더")

>>> 안녕! 나는 코더라고 해.

Cannot assign to value: 'Name' is a 'let' constant

 

값을 임의로 변경하려 할 때, 파라미터가 상수이므로 변경할 수 없다는 경고창이 떴습니다.


💬 이를 해결하기 위해 inout 을 자료형 앞에 적으면 값을 변경할 수 있습니다.

func sayHI2(_ Name: inout String) {
    Name = "개발하는 " + Name
   print("안녕! 나는 \(Name)라고 해.")
}

💬 값을 집어넣을 때는 파라미터 앞에 & 를 붙여야 합니다.

sayHI2(&name)

>>> 안녕! 나는 개발하는 후니라고 해.

 

반응형

'IOS - Swift' 카테고리의 다른 글

Mac 에러해결기: (xcrun: error: unable to find utility "xcodebuild", not a developer tool or in PATH)  (0) 2022.09.25
Mac 에러 해결기 (xcrun: error: invalid active developer path)  (0) 2022.09.25
Swift 기본문법 - Dictionary  (0) 2022.09.15
Swift 기본문법 - 상속  (0) 2022.09.15
Swift 기초문법 - Closure  (0) 2022.09.14
'IOS - Swift' 카테고리의 다른 글
  • Mac 에러해결기: (xcrun: error: unable to find utility "xcodebuild", not a developer tool or in PATH)
  • Mac 에러 해결기 (xcrun: error: invalid active developer path)
  • Swift 기본문법 - Dictionary
  • Swift 기본문법 - 상속
게게겍
게게겍
열심히 공부해보고 있습니다
  • 게게겍
    코더라도 되어보자
    게게겍
  • 전체
    오늘
    어제
    • 분류 전체보기
      • IOS - Swift
        • UIkit
        • SwiftUI
        • Combine
      • 혼자 공부한거
      • inflearn
      • 기타
      • 일기
      • firebase
      • CS
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    fileprivate
    UIViewRepresentable
    ios
    subscription
    Swift
    scan
    #GDSC #캐치카페 #대관 # 대학생 #취준생 #진학사
    UIHostingController
    UICollectionView Custom Cell with Horizontal Scroll
    open
    compactMap
    viewBuilder
    replacemap
    flatMap
    private
    combine
    uikit
    trymap
    INTERNAL
    SwiftUI
    map
    swift openapigenerator
    launchscreen
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
게게겍
Swift 기초문법 - In-out Parameters
상단으로

티스토리툴바