DevCho
Developer Blog
DevCho
반응형
전체 방문자
오늘
어제
  • 분류 전체보기 (48)
    • IOS (31)
      • Xcode (7)
      • Assets (1)
      • Swift (20)
      • UI (1)
      • SwiftUI (1)
      • Build (1)
    • Flutter (4)
      • Install (4)
      • Dart (0)
    • Rust (0)
    • 유용한 사이트 소개 (1)
    • 개발자의 아이템 (1)
    • Terminal (1)
    • Mac (2)
    • Git (1)
    • 회고 (1)
    • Java (2)
      • Java 기본 사용법 (2)
      • Collections (0)
    • 개발자의 글쓰기 (0)
    • 디자인 패턴 (1)
    • JavaScript (2)
    • Kotlin (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • flutter
  • dart 설치
  • Terminal
  • 스위프트
  • dart
  • xcode13
  • Swift
  • nil
  • swift random
  • optional
  • SwiftUI
  • random number
  • MAC
  • 제어문
  • Storyboard
  • 플러터 설치
  • Dark mode
  • flutter install
  • CLASS
  • xcode
  • Java
  • flutter dart
  • chocolatey 설치
  • struct
  • flutter 설치
  • func
  • IOS
  • chocolatey
  • chocolatey install
  • Xcode Theme

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
DevCho

Developer Blog

[Swift] struct 한 번에 정리하기
IOS/Swift

[Swift] struct 한 번에 정리하기

2021. 12. 19. 17:58
반응형

struct란?

struct는 클래스의 특별한 형태로, 데이터를 저장하기 위해 만들어지는 특별한 클래스이다. struct를 사용해 여러 변수들을 결합해 하나의 타입을 만들 수 있다. 

*자바의 POJO나 코틀린의 data class와 같다. 

 

 

struct만들기

struct는 다음 세가지 원칙을 이용해 만들어진다.

  • struct에서 결합되는 변수들은 property라 부른다.
  • struct 내부에 func을 넣을 수 있다.
  • 생성자를 사용해 struct를 초기화 할 수 있으며 커스텀 생성자는 init()함수를 이용해 만들 수 있다.

 

위 세가지를 적용하면 Struct는 다음과 같이 만들어진다된다. 각 변수(property)에 이름을 부여할 수 있어 가독성이 좋아진다.

struct StructName {
    let property1: Type1
    var property2: Type2
    
    init(_property1: Type1, _property2: Type2) {
        property1 = _property1
        property2 = _property2
    }
    
    func printProperty1(){
        print("property1 : \(property1)")
    }
}

 

물론 다음과 같이 기본 값을 설정할 수도 있다.

struct StructName {
    let property1: Type1 = defaultValue
    var property2: Type2
    
    init(_property2: Type2) {
        property2 = _property2
    }
    
    func printProperty1(){
        print("property1 : \(property1)")
    }
}

 

struct 예시

사람은 이름, 나이, 체온으로 이루어져 있는데 이를 이름, 나이, 체온 을 프로퍼티로 사용하는 사람이라는 struct를 만들 수 있다.

추가적으로 struct에 사람이 아픈지 확인하는 func을 추가한다.

struct Person {
    let name: String
    let age: Int
    let temperature: Float
    
    init(_name: String, _age: Int, _temperature : Float) {
        name = _name
        age = _age
        temperature = _temperature
    }
    
    func isSeek() -> Bool {
        return temperature > 37.5
    }
}

이렇게 하면 사람 객체를 다음과 같이 만들 수 있다.

let person = Person(_name : "DevCho",_age: 29,_temperature:  38.0)

 

자 이제 만든 사람 객체를 가지고 사람이 아픈지 확인해보자. 사람의 체온이 38도이므로 아픈것이 true로 출력되는 것을 확인할 수 있다.

 

그림1. struct 예시

반응형

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

[Swift] Struct와 Class의 차이는 무엇인가?  (0) 2021.12.20
[Swift] struct 내부에서 변수값 변경하기  (0) 2021.12.19
[Swift 제어문] switch case 사용해 다중 조건 처리하기  (0) 2021.12.19
[Swift 제어문] if 문 다루는 방법 한 번에 정리하기  (0) 2021.12.19
[Swift] Optional을 다루는 다양한 방법 : nil 다루기  (0) 2021.12.19
    'IOS/Swift' 카테고리의 다른 글
    • [Swift] Struct와 Class의 차이는 무엇인가?
    • [Swift] struct 내부에서 변수값 변경하기
    • [Swift 제어문] switch case 사용해 다중 조건 처리하기
    • [Swift 제어문] if 문 다루는 방법 한 번에 정리하기
    DevCho
    DevCho
    개발자의 개발 공간

    티스토리툴바