SwiftUI 100일 중 8일째

1940 단어
HackingWithSwift의 SwiftUI 100일 8일째. 오늘은 구조체에 대해 알아보았습니다.

Swift의 구조체는 사용자 정의 데이터 유형을 정의하는 데 사용됩니다. 구조체는 변수, 상수 및 함수를 가질 수 있습니다. 구조체의 변수와 상수는 속성이라고 하고 함수는 메서드라고 합니다. Swift의 구조체는 다음과 같이 작성할 수 있습니다.

 struct Person {
   var name: String
   var nationality : String
   var level: Int

   func checkLevel() -> Bool {
       if level > 9000 {
         print("It's over 9000!")
       } else {
         print("hmmmmm.... not bad.")
       }
   }
}

let sanmi = Person(name: "sanmi", nationality: "Nigerian", level: 9001)
sanmi.checkLevel()


위의 코드는 3개의 변수와 1개의 메소드로 구조체(struct)를 정의합니다. 메소드는 구조체 내부의 거의 함수입니다. 메소드와 기능 사이에는 두 가지 눈에 띄는 차이점이 있습니다.
  • 메서드는 구조체에 정의된 속성에 액세스할 수 있습니다. checkLevel 메서드를 보면 level 속성이 9000 이상인지 확인하고 있습니다.
  • Swift에는 두 종류의 메소드가 있습니다. 돌연변이 방법과 비 돌연변이 방법. 속성 값을 변경하려는 경우 변경 방법이 사용됩니다. 돌연변이 방법은 단순히 돌연변이로 표시됩니다.

  •  struct Engine {
       var name: String
       var speed : Int = 150
    
       mutating func upgrade() {
         speed += 50
       }
    }
    
    let engine = Engine(name: "Tron")
    engine.upgrade()
    


    Swift의 속성에는 속성 관찰자라는 정말 멋진 기능이 있습니다. 속성 관찰자를 사용하면 속성 변경 전후에 코드를 실행할 수 있습니다. 속성 관찰자는 swift에서 사용하기가 매우 간단합니다.

     struct Engine {
       var name: String
       var speed : Int = 150
            didSet {
                print("Engine speed was changed to \(speed)")
            }
            willSet {
                print("Engine speed is about to be  changed")
            }
    
       mutating func upgrade() {
         speed += 50
       }
    }
    
    let engine = Engine(name: "Tron")
    engine.upgrade()
    


    도전에 관심이 있으시면 https://www.hackingwithswift.com/100/swiftui에서 찾을 수 있습니다.
    내일 봐요 ;)

    좋은 웹페이지 즐겨찾기