Swift Structures, Methods, Properties
Swift에서의 중요한 Structures, Methods, Properties에 대해서 이야기 해보겠다.
Structuers는 Custome Data Type을 생성하는걸 돕는다.
Strings, Ints, Floats, Boolean 등은 prebuilt data type이라 하고, structure는 이와 다르게 사용자가 정의하는 데이터 타입이다.
Swift에서 structure 선언은 아래와 같이 한다.
struct MyStruct { }
MyStruct()
이렇게 structure를 선언 하면, 다른 prebuilt data type처럼 사용을 할수 있다.
예제로 알아보자.
struct Town {
let name = "Seoul"
var citizens = ["Lee", "Kim", "Park"]
var resources = ["Grain": 100, "Ore": 42, "Wool": 75]
}
3개의 properties는 Town이라는 struct로 묶인다.
var myTown = Town()
print(myTown.citizens)
이렇게 하면 결과값은 “Lee”, “Kim”, “Park”이 나온다.
print("\(myTown.name) has \(myTown.resources["Grain"]!) bags of grain.")
이렇게 하면 Seoul has 100 bags of grain. 이 출력된다.
myTown.citizens.append("Jeong")
print(myTown.citizens.count)
append를 통해 추가도 가능하고 count 등 이러한 것들도 모두 가능하다.
그리고 Structure 안에 함수 선언도 가능하다.
struct Town {
let name = "Seoul"
var citizens = ["Lee", "Kim", "Park"]
var resources = ["Grain": 100, "Ore": 42, "Wool": 75]
func fortify() {
print("Defences increased!")
}
}
var myTown = Town()
myTown.fortify() // Defences increased! 출력이 된다.
이 Structure안에서 name, citizens, resources는 Property가 되고, fortify는 method가 된다.
다른 형식으로 한번 바꿔보자.
struct Town {
let name: String
var citizens: [String]
var resources: [String: Int]
init(townName: String, people: [String], stats: [String: Int]) {
name = townName
citizens = people
resources = stats
}
func fortify() {
print("Defences increased!")
}
}
var anotherTown = Town(townName: "Seoul", people: ["Kim"], stats: ["Oil": 100])
anotherTown.citizens.append("Lee") // anotherTown에 Lee가 추가됨
print(anotherTown.citizens) // Kim, Lee가 출력
initializer를 통해 town을 생성하였다.
이러한 방식으로도 많이 사용된다고 하니, 상황에 맞게 선택하여 잘 사용하면 좋을 것 같다.
자주사용하게 되는 것들에서 중복을 줄이고 오타를 줄이며 보다 직관적으로 잘 정리할수 있어 structure 사용에 익숙해지도록 해야겠다.
댓글남기기