Учебники

Свифт — Конструкции

Swift 4 предоставляет гибкий строительный блок для использования конструкций в качестве структур. Используя эти структуры, можно определить методы и свойства конструкций.

В отличие от C и Objective C

  • Структура не требует файлов реализации и интерфейса.

  • Структура позволяет нам создавать один файл и автоматически расширять его интерфейс для других блоков.

Структура не требует файлов реализации и интерфейса.

Структура позволяет нам создавать один файл и автоматически расширять его интерфейс для других блоков.

В Структуре значения переменных копируются и передаются в последующих кодах путем возврата копии старых значений, чтобы значения не могли быть изменены.

Синтаксис

Structures are defined with a 'Struct' Keyword.
struct nameStruct {
   Definition 1
   Definition 2
   ---
   Definition N
}

Определение структуры

Рассмотрим, к примеру, предположим, что мы должны получить доступ к записям студентов, содержащим оценки трех предметов, и узнать три предмета. Здесь markStruct используется для инициализации структуры с тремя метками как тип данных «Int».

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

Доступ к структуре и ее свойствам

Члены структуры доступны по имени структуры. Экземпляры структуры инициализируются ключевым словом let.

Live Demo

struct studentMarks {
   var mark1 = 100
   var mark2 = 200
   var mark3 = 300
}

let marks = studentMarks()
print("Mark1 is \(marks.mark1)")
print("Mark2 is \(marks.mark2)")
print("Mark3 is \(marks.mark3)")

Когда мы запускаем вышеуказанную программу, используя площадку, мы получаем следующий результат —

Mark1 is 100
Mark2 is 200
Mark3 is 300

Доступ к оценкам учащихся осуществляется по структуре «studentMarks». Элементы структуры инициализируются как mark1, mark2, mark3 со значениями целочисленного типа. Затем структура studentMarks () передается метке «mark» с ключевым словом «let». В дальнейшем «отметки» будут содержать значения элементов структуры. Теперь значения печатаются путем доступа к значениям элементов структуры с помощью «.» с его инициализированными именами.

Live Demo

struct MarksStruct {
   var mark: Int

   init(mark: Int) {
      self.mark = mark
   }
}

var aStruct = MarksStruct(mark: 98)
var bStruct = aStruct     // aStruct and bStruct are two structs with the same value!
bStruct.mark = 97

print(aStruct.mark)      // 98
print(bStruct.mark)      // 97

Когда мы запускаем вышеуказанную программу, используя площадку, мы получаем следующий результат —

98
97

Лучшие практики использования конструкций

Язык Swift 4 обеспечивает функциональность для определения структур как пользовательских типов данных для построения функциональных блоков. Экземпляры структуры передаются по значению в определенные блоки для дальнейших манипуляций.

Нужно иметь структуры

  • Инкапсулировать простые значения данных.

  • Копировать инкапсулированные данные и связанные с ними свойства по «значениям», а не «ссылкам».

  • Структура для «Копировать» и «Ссылка».

Инкапсулировать простые значения данных.

Копировать инкапсулированные данные и связанные с ними свойства по «значениям», а не «ссылкам».

Структура для «Копировать» и «Ссылка».

Структуры в Swift 4 передают своих членов со своими значениями, а не по ссылкам.

Live Demo

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
   }
}

var marks = markStruct(mark1: 98, mark2: 96, mark3:100)
print(marks.mark1)
print(marks.mark2)
print(marks.mark3)

Когда мы запускаем вышеуказанную программу, используя площадку, мы получаем следующий результат —

98
96
100

Другой пример

Live Demo

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
   }
}

var fail = markStruct(mark1: 34, mark2: 42, mark3: 13)

print(fail.mark1)
print(fail.mark2)
print(fail.mark3)

Когда мы запускаем вышеуказанную программу, используя площадку, мы получаем следующий результат —

34
42
13

Структура ‘markStruct’ определяется в первую очередь ее членами mark1, mark2 и mark3. Теперь переменные классов-членов инициализируются для хранения целочисленных значений. Затем копии членов структуры создаются с ключевым словом «self». Как только копия элементов структуры создана, структурный блок с его параметрами marks передается в переменную ‘marks’, которая теперь будет содержать оценки студентов. Затем метки печатаются как 98, 96, 100. Следующий шаг для тех же самых элементов структуры, другой экземпляр с именем ‘fail’ используется для указания одинаковых элементов структуры разными метками. Затем результаты теперь печатаются как 34, 42, 13. Это ясно объясняет, что структуры будут иметь копию переменных-членов, а затем будут передавать элементы в их предстоящие функциональные блоки.