클래스 및 구조(Classes and Structures)
일반적으로 하나의 종류의 실례를 대상이라고 부른다.그러나 Swift에서 클래스와 구조체의 관계는 다른 언어보다 더욱 밀접하고 본 장에서 논의한 대부분의 기능은 클래스와 구조체에 사용될 수 있다.따라서 우리는 대상이 아닌 실례를 주로 사용한다.
클래스와 구조체 비교
Swift에는 클래스와 구조체의 공통점이 많다.공통점:
class SomeClass {
// class definition goes here
}
struct SomeStructure {
// structure definition goes here
}
UpperCamelCase ( SomeClass SomeStructure ), Swift ( String,Int Bool)。
lowerCamelCase ( framerate incrementCount), 。
구조체와 매거는 값 유형이다
값 형식이 변수, 상수, 또는 함수에 부여될 때, 그 값은 복사됩니다.
우리는 이미 값 유형을 대량으로 사용했다.실제로 Swift에서 모든 기본 유형은 정수(Integer), 부동점수(floating-point), 부울값(Boolean), 문자열(string), 수조(array)와 사전(dictionary)이다. 모두 값 유형이고 밑바닥은 구조체의 형태로 이루어진다.
Swift에서는 모든 구조체 및 열거 유형이 값 유형입니다.이것은 그것들의 실례와 실례에 포함된 모든 값 유형의 속성이 코드에서 전달될 때 복제된다는 것을 의미한다.
클래스는 참조 유형
값 형식과 달리 인용 형식은 변수, 상수, 함수에 부여되거나 전달될 때 그 값은 복사되지 않습니다.따라서 이미 존재하는 실례 자체를 인용하는 것이지 복사하는 것이 아니다.
항등연산자
클래스는 인용 유형이기 때문에 여러 개의 상수와 변수가 막후에서 같은 클래스의 실례를 동시에 인용할 수 있다.
만약 두 상수나 변수가 같은 종류의 실례를 인용하는지 아닌지를 판정할 수 있다면 매우 도움이 될 것이다.이 목적을 달성하기 위해 Swift에는 두 개의 항등연산자가 만들어졌습니다.
포인터
어떤 인용 형식의 실례를 인용하는 Swift 상수나 변수는 C 언어의 바늘과 유사하지만, 메모리 주소를 직접 가리키지 않으며, 별표 (*) 를 사용해서 인용을 만들도록 요구하지 않습니다.Swift의 이러한 참조는 다른 상수 또는 변수의 정의와 동일합니다.
문자열(String), 배열(Array), 사전(Dictionary) 유형의 값 지정 및 복사 동작
Swift에서 많은 기본 유형, 예를 들어 String, Array와 Dictionary 유형은 모두 구조체의 형식으로 실현된다.이것은 새로운 상수나 변수에 값을 부여받거나 함수나 방법에 전달될 때 값을 복사한다는 것을 의미한다.
Objective-C에서 NSString, NSArray와 NSDictionary 유형은 구조체가 아닌 클래스로 이루어진다.그것들은 값을 부여받거나 함수나 방법에 전달될 때 값 복사가 일어나지 않고 기존 실례의 인용을 전달한다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.