TIL (Today I Learned)
1월 13일 (토)
🔥학습 내용
Struct(구조체)
1. Struct는 무엇인가?
-
Type(타입)이다. 그렇다면 Type(타입)이란 무엇인가?
- 모든 개체의 행위와 특성을 한데 모아 표현해둔 것이다.
- Type(타입) 자체는 일을 하지 않지만, 타입 형태로 생성된 개체는 일을 할 수 있다. ex) 타입은 자동차 설계도, 개체는 자동차
struct Car {
let color
let number
func move(where: String){
}
}
-
이렇게 타입으로부터 만들어진 개체를 우리는인스턴스라고 부른다.
-
스위프트에서는 Type(타입)에 해당되는 것이 struct(구조체), class, enum, protocol 등이 있다.
2. Struct를 왜 사용해야할까?
- 참조가 아니라 값의 복사를 원할 때 사용한다.
- 상속 받을 필요가 없을 경우 사용한다.
- 애플 개발자 가이드 문서
Choosing Between Structures and Classes에 따르면, Choose Structures by Default 라고 명시되어있다.
- 애플이 타입을 선택할 때, 기본으로 class가 아닌 struct로 선택하라고 하는 내용은 다음 아래의 내용에서 의미를 알 수 있다.
- 앱의 상태를 고려하지 않고 코드 관련된 부분만 찾기 쉽다. 그 이유는 struct가 값의 구조로 되어 있으므로, 앱 전체 흐름의 큰 영향을 끼치지 않기 때문이다.
- 그 결과, 코드의 섹션이 변경되어 인스턴스도 변경이 되었을 때, 함수 호출에 있어서 보이지 않는 것 보다, Struct를 이용해서 명시적으로 확인할 수 있는 장점이 있다.
생각해봐야할 점 🤔
- 객체 지향에 대한 개념을 이해가 될 때까지 계속 학습이 필요하다.
#. 참고 URL
https://developer.apple.com/documentation/swift/choosing-between-structures-and-classes
값의 구조로 되어있는 데, 왜 앱의 전체 흐름에 방해가 되지 않는다고 하는 지는 확인이 필요할 것 같다. 이해가 되지 않는다.