인스턴스의 값을 저장하거나 기능을 제공하고 이를 캡슐화 할 수 있는 스위프트가 제공하는 타입이다.
대부분 변수나 상수를 선언할 때는 camelCase로 작성해주지만
구조체를 정의한다는 것은 새로운 타입을 생성해주는 것과 마찬가지이므로 기본 타입을 작성할 때처럼 camelCase가 아닌 pascalCase로 작성해준다.
ex) User, Information...
struct User {
var nickname: String
var age: Int
}
위에 말한 것처럼 pascalCase로 선언해주고 안에 들어갈 정보를 프로퍼티로 작성해준다. 이렇게까지 하면 정의하기는 완료이다.
정의한 구조체를 사용하려면 인스턴스를 생성해줘야한다.
-> 클래스와 구조체를 실제로 사용하기 위해서 메모리에 생성하는 것, 한마디로 메모리에 생성된 클래스,구조체의 실체라고 생각하면 된다.
var user = User(nickname: "Duhyeon", age: 29)
위 코드처럼 nickname과 age에 값을 넣어주면 유저 구조체 인스턴스가 생성이 된다.
값에 접근하고 싶다면 javascirpt에서 객체에 접근할 때와 마찬가지로 dot notation으로 접근하면 된다. 물론 프로퍼티 값도 변경이 가능하다.
struct User {
var nickname: String
var age: Int
func information () {
print("\(nickname)\(age)")
}
}
유저의 nickname과 age를 print 해주는 매서드를 정의했다. 이 매서드도 앞에서 사용했던 것처럼 dot notation으로 작성해주면 된다.
29살인게 믿겨지지 않지만 내 이름과 나이가 나오게 된다.