Latest web development tutorials

스위프트 구조

신속한 구조는 일반적이고 유연한 구조를 구축하기 위해 사용되는 코드이다.

우리는 구조 (상수, 변수)의 속성을 정의하는 기능적인 구조를 확장하는 방법을 추가 할 수있다.

C와 목표 C는 다르다 :

  • 구조 구현 파일 및 인터페이스를 포함 할 필요가 없다.

  • 구조 우리는 단일 파일을 생성 할 수 있으며, 시스템은 자동으로 다른 외부 인터페이스에 대한 코드를 생성 할 것이다.

구조는 항상 코드 전송의 방법으로 복제, 그래서 그 값은 수정할 수 없습니다.

문법

우리는 키워드 구조체를 통해 구조를 정의 :

struct nameStruct { 
   Definition 1
   Definition 2
   ……
   Definition N
}

학생들은 세 과목, 데이터 유형의 지능 점수를 위해 우리는 MarkStruct라는 구조, 속성 구조를 정의 :

struct MarkStruct{
   var mark1: Int
   var mark2: Int
   var mark3: Int
}

우리는 구조 이름으로 구조에 올 수 있습니다.

송출 키워드를 사용하는 구조의 예 :

import Cocoa

struct studentMarks {
   var mark1 = 100
   var mark2 = 78
   var mark3 = 98
}
let marks = studentMarks()
print("Mark1 是 \(marks.mark1)")
print("Mark2 是 \(marks.mark2)")
print("Mark3 是 \(marks.mark3)")

위의 프로그램 실행 출력은 다음과 같습니다

Mark1 是 100
Mark2 是 78
Mark3 是 98

예, 우리는 구조 이름을 통해 학생들의 성취도에 'studentMarks 액세스를. 구조 부재는 MARK1, MARK2, mark3, 데이터 유형 정수로 초기화됩니다.

우리는 그 다음 (가) 마크를 인스턴스화전달되는하자 키워드 구조 studentMarks를 사용합니다.

마지막으로, 구조 부재에 액세스 할 수값을 통과시켰다.

전통적인 값 구조물의 클로닝 구조의 실시 예에 의해 인스턴스화 :

import Cocoa

struct MarksStruct {
   var mark: Int

   init(mark: Int) {
      self.mark = mark
   }
}
var aStruct = MarksStruct(mark: 98)
var bStruct = aStruct // aStruct 和 bStruct 是使用相同值的结构体!
bStruct.mark = 97
print(aStruct.mark) // 98
print(bStruct.mark) // 97

위의 프로그램 실행 출력은 다음과 같습니다

98
97

응용 프로그램 구조

당신의 코드에서 사용자 정의 데이터 형식의 구조를 정의 할 수 있습니다.

구조의 예는 항상 값으로 전달 사용자 정의 데이터 유형을 정의하는 것입니다.

다음 조건 중 하나 이상에 부합는 건물 구조를 고려 일반적인 규칙에 따르면 :

  • 구조의 주요 목적은 간단한 값에 관련된 작은 양의 데이터를 캡슐화하는데 사용된다.
  • 합리적인는 구조 인스턴스 할당 또는 전송이, 캡슐화 된 데이터가 아닌 복사 참조 할 수있을 것으로 기대합니다.
  • 구조에 저장된 속성 값의 임의의 타입은 그것을 참조하지 복사된다.
  • 구조는 문제가 이미 존재의 속성 또는 다른 유형을 상속 할 필요가 없습니다.

예를 들어, 구조의 사용을 위해 다음과 같은 경우 :

  • 기하학적 크기와 패키지의 모양 width 속성과 height 입니다 둘의 속성 Double 유형입니다.
  • 특정 범위 내에서 경로는 패키지 start 속성과 length 두 가지 모두의 특성, Int 유형입니다.
  • 입체 패키지 시스템 좌표 x , yz 속성, 셋은 Double 유형입니다.

구조의 예는 값이 아닌 참조로 전달됩니다.

import Cocoa

struct markStruct{
    var mark1: Int
    var mark2: Int
    var mark3: Int
    
    init(mark1: Int, mark2: Int, mark3: Int){
        self.mark1 = mark1
        self.mark2 = mark2
        self.mark3 = mark3
    }
}

print("优异成绩:")
var marks = markStruct(mark1: 98, mark2: 96, mark3:100)
print(marks.mark1)
print(marks.mark2)
print(marks.mark3)

print("糟糕成绩:")
var fail = markStruct(mark1: 34, mark2: 42, mark3: 13)
print(fail.mark1)
print(fail.mark2)
print(fail.mark3)

위의 프로그램 실행 출력은 다음과 같습니다

优异成绩:
98
96
100
糟糕成绩:
34
42
13

MARK1, MARK2 및 mark3 : 위의 예는, 우리는 구조 markStruct, 재산의 3 명을 정의합니다. 생체 사용하여 멤버 속성의 구조 자체 키워드를 사용합니다.

예제에서 우리는 잘 구조 인스턴스가 값에 의해 전달됩니다 이해할 수있다.