본문 바로가기

클래스3

[Swift] Structures and Classes(스트럭처와 클래스) - 2 Structures and Enumerations Are Value Types값 타입은 변수나 상수에 할당되거나 함수에 전달될 때, 값이 복사되는 타입이다. 스위프트의 정수, 실수, 부울, 문자열, 배열, 딕셔너리와 같은 기본 타입들은 모두 값 타입이고 실제로 스트럭처로 구현되어있다. 스위프트에서 모든 스트럭처와 열거형과 그 값 타입 프로퍼티들은 코드 안에서 복사되어 전달된다.Note배열, 딕셔너리, 문자열과 같은 콜렉션은 전달(혹은 할당)될 때, 즉시 복사되지 않고 수정 작업이 이루어졌을때 복사를 하는 최적화가 되어있다.let hd = Resolution(width: 1920, height: 1080)var cinema = hd이 예시는 앞선 예시에 나온 스트럭처 Resolution의 상수 인스턴스 h.. 2023. 6. 1.
[Swift] Structures and Classes(스트럭처와 클래스) - 1 Structures and Classes스트럭처와 클래스는 범용성 있는 유연한 구조이다. 상수, 변수, 함수를 작성하는 것 처럼 프로퍼티와 메소드를 작성하여 스트럭처와 클래스에 기능을 부여할 수 있다. Comparing Structures and Classes스트럭처와 클래스는 많은 공통점을 가지고 있다. 둘 다 다음과 행동을 할 수 있다.값을 저장하기 위한 프로퍼티 정의기능(functionality)을 위한 메소드 정의서브스크립트 구문을 통하여 값에 접근할 수 있게 하는 서브스크립트 정의초기 값을 설정하기 위한 이니셜라이저 정의기본 구현보다 확장된 기능을 위한 확장성특정 종류에 대한 표준 기능을 제공하는 프로토콜 준수클래스는 스트럭처가 없는 추가 기능들이 있다.상속을 통한 다른 클래스의 특성 상속타입 .. 2023. 6. 1.
[Swift] 자료형 - class(클래스) 기본 개요 연관된 값들과 메소드들을 캡슐화하기 위한 자료구조 구조 class SampleClass { // Property var a: Int // Method func show() { print(a) } // initializer init(a: Int) { self.a = a } } 프로퍼티 메소드 이니셜라이저 특징 클래스는 레퍼런스 타입 var s1 = SampleClass(a: 1) var s2 = s1 s2.a = 10 print(s1.a)// 10 print(s1 === s2 ? true : false)// true → s1을 s2에 복사했을 때, s1와 똑같은 값을 가진 새로운 인스턴스가 생성되는게 아닌, 동일한 인스턴스를 가리키는 레퍼런스가 생성된다. (얕은 복사) 그래서 s1의 값을 변경하면 s.. 2023. 3. 5.