Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 함수
- TableView
- 패스트캠퍼스
- Realm
- 기본문법
- Background
- RawValue
- Optional Chaining
- 열거형
- 직장인자기계발
- 패스트캠퍼스후기
- 문자열 보간법
- userDefaults
- 패캠챌린지
- 프로퍼티 관찰자
- 옵셔널 체이닝
- ios
- xcode
- 직장인인강
- Git
- beginAsyncWrite
- enum
- SeSAC
- 인스펙터
- 독학
- 30개프로젝트로배우는iOS앱개발withSwift초격자패키지Online
- cancelAsyncWrite
- swift
- Threading
- switch
Archives
- Today
- Total
아삭아삭 iOS 개발
[Swift 독학] 패스트캠퍼스 챌린지 17일차_구조체 본문
swift에는 클래스와 구조체 타입이 공존하고 있음
■ 구조체
- C언어 등의 구조체보다 다양한 기능 수행 가능
- 상속 불가
- 값 타입(value type)
- Swift 대부분의 큰 뼈대는 모두 구조체로 구성되어 있음
- 타입을 정의하는 것이기 때문에 타입이름은 파스칼 표기법을 사용하여 정의(즉, 대문자로 시작)
바디 내부의 프로퍼티와 메서드는 소문자를 사용하여 정의 - 타입내에 들어가 있는 변수는 프로퍼티, 함수는 메서드라고 이해할 수 있음
- 구조체 바디내 포함 가능한 선언 종류
→ 가변 프로퍼티, 불변 프로퍼티, 타입 프로퍼티, 인스턴스 메서드, 타입 메서드, 초기화 구문, 서브 스크립트, 타입 별칭, 다른 구조체, 클래스, 행위자, 열거형 선언
(단, 초기화 해제 구문, 프로토콜 선언은 포함 불가)
■ 구조체 특징
- 구조체 인스턴스의 프로퍼티는 점(.)구문을 사용하여 접근 가능
- 변수나 상수에 할당될 때, 함수 호출에 의해 인수로 전달될 때 등의 경우 구조체의 인스턴스는 복사됨
- 인스턴스를 생성하여야 구조체 사용 가능
: 인스턴스 생성 = 클래스와 구조체를 사용하기 위해 메모리에 생성함을 뜻함 - 구조체에서 기본으로 정의된 생성자의 매개변수는, 구조체의 프로퍼티 이름으로 자동 지정됨
→ 별도로 생성자를 선언하지 않을 경우, 자동으로 생성자가 만들어짐
struct Student {
var name: String = “Diplo” // 가변 프로퍼티
let age: Int = 25 // 불변 프로퍼티
static var typeProperty: Int = 77 // 타입 프로퍼티
func instanceMethod() {
print(“blue skies")
} // 인스턴스 메서드
static func typeMethod() {
print(“Bored in the House")
} // 타입 메서드
}
var student: Student = Student() // 가변 인스턴스 생성
student.name // 점(.)구문을 이용해 프로퍼티 값에 접근
student.name = “Technasia" // 가변 프로퍼티는 값 바꾸기 가능
■ 구조체 사용 case
- 연관된 값들을 모아서 하나의 데이터 타입으로 나타내고자 할 경우
- 다른 객체 또는 함수 등으로 전달할 경우
- 상속하거나 상속받을 필요가 없을 경우 등
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
'Swift' 카테고리의 다른 글
[Swift 독학] 패스트캠퍼스 챌린지 19일차_초기화 (0) | 2022.02.11 |
---|---|
[Swift 독학] 패스트캠퍼스 챌린지 18일차_클래스 (0) | 2022.02.10 |
[Swift 독학] 패스트캠퍼스 챌린지 16일차_옵셔널 추출 (0) | 2022.02.08 |
[Swift 독학] 패스트캠퍼스 챌린지 15일차_옵셔널 (0) | 2022.02.07 |
[Swift 독학] 패스트캠퍼스 챌린지 14일차_반복문 (0) | 2022.02.06 |