[Swift] Raw Values (원시 값)

2023. 10. 10. 09:00·Apple/Swift
728x90
반응형

이번 시간에는 Raw Values에 대해서 알아보겠습니다. 

 

Raw Values는 우리말로 '원시 값'이라고 표현합니다. Swift에서 Raw Value는 열거형의 기능 중 하나로, 각 케이스에 미리 정의된 상수 값을 할당할 수 있도록 해주는 기능을 가리킵니다. 열거형은 관련된 값들의 그룹을 정의하고, 각각의 값은 고유한 식별자인 케이스로 나타낼 수 있습니다. 이러한 케이스에는 Raw Values을 할당할 수도 있습니다.

 

열거형에서 Raw Values을 사용하면 해당 값을 통해 열거형 인스턴스를 생성하거나, 현재 값을 확인하는 등 다양한 작업을 수행할 수 있습니다. Raw Value는 주로 외부 시스템과의 상호작용이 필요한 경우나, 특정 데이터를 저장하고 전송하기 위해 사용됩니다. Raw Values는 enum 내에서 특정 데이터를 연결하거나 특정 값으로 케이스를 나타내고자 할 때 유용합니다.

 

enum Weekday: Int {
    case sunday = 1
    case monday
    case tuesday
    case wednesday
    case thursday
    case friday
    case saturday
}

이 예제에서 Weekday는 Raw Values의 유형이 Int인 enum입니다. 첫 번째 케이스인 sunday는 Raw Values로 1을 가지며, 이후의 케이스는 연속된 Raw Values를 할당하되, 각각 1씩 증가합니다. 그러나 각 케이스에 수동으로 Raw Values를 할당할 수도 있습니다. 

 

아래 소스 코드처럼 enum 케이스의 Raw Values를 rawValue 속성을 사용하여 접근할 수 있습니다.

let today = Weekday.monday
print(today.rawValue) // 2를 출력합니다.

또한 init?(rawValue:) 이니셜라이저를 사용하여 원시 값을 가진 enum을 초기화할 수도 있습니다.

if let day = Weekday(rawValue: 4) {
    print("오늘은 \(day)입니다") // "오늘은 wednesday입니다"를 출력합니다.
}

Raw Values는 주로 외부 소스(API와 같은)에서 데이터를 받아와서 이를 의미 있는 enum 케이스로 매핑해야 할 때 유용합니다. Swift 코드에서 보다 의미 있고 타입 안전한 처리를 위해 Raw Values는 특히 유용하게 사용됩니다.

 

감사합니다.


틀린 부분이 있거나 더 좋은 내용 훈수 환영합니다!

공감과 댓글 부탁드립니다.

728x90
반응형

'Apple > Swift' 카테고리의 다른 글

[Swift] 가변 매개변수, call by address 구현  (1) 2023.10.12
[Swift] guard~let, 디폴트 매개변수 정의, 함수 응용  (2) 2023.10.11
[Swift] 델리게이트 패턴(Delegate Pattern)  (4) 2023.10.08
[Swift] 지연 저장 프로퍼티(Lazy Stored Properties)  (0) 2023.10.05
[Swift] 함수에 대한 개념과 다양한 예시 소스  (5) 2023.09.29
'Apple/Swift' 카테고리의 다른 글
  • [Swift] 가변 매개변수, call by address 구현
  • [Swift] guard~let, 디폴트 매개변수 정의, 함수 응용
  • [Swift] 델리게이트 패턴(Delegate Pattern)
  • [Swift] 지연 저장 프로퍼티(Lazy Stored Properties)
P_Piano
P_Piano
Apple 생태계 개발자가 되기 위한 학습과 경험의 기록
    반응형
    250x250
  • P_Piano
    피피아노의 개발 일지
    P_Piano
  • 전체
    오늘
    어제
    • 분류 전체보기 (209)
      • Apple (127)
        • iOS (22)
        • visionOS (4)
        • Swift (68)
        • UIKit (2)
        • SwiftUI (24)
        • RxSwift (2)
        • Xcode (5)
      • C언어 (5)
      • C++ (8)
      • Dart (1)
      • Python (3)
      • JavaScript (17)
      • Git (1)
      • CS (39)
        • 디자인 패턴 (6)
        • 네트워크 (20)
        • 운영체제 (8)
        • Database (5)
        • 자료구조 (0)
      • IT 지식 (2)
      • IT 뉴스 (4)
      • 출처 표기 (1)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    Xcode
    프로퍼티 래퍼
    티스토리챌린지
    Vision Pro
    SWIFT
    코딩테스트
    디자인패턴
    프로그래머스
    함수
    이니셜라이저
    네트워크
    스위프트
    Apple
    ios
    UIKit
    Initializers
    오블완
    자바스크립트
    비동기
    visionOS
    제어문
    swiftUI
    클래스
    배열
    옵셔널
    변수
    프로세스
    운영체제
    연산자
    combine
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
P_Piano
[Swift] Raw Values (원시 값)
상단으로

티스토리툴바