English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Структуры Swift - это универсальный и гибкий конструкт, используемый для создания кода.
Мы можем определить свойства структуры (константы, переменные) и добавить методы, чтобы расширить функциональность структуры.
В отличие от C и Objective C:
Структура не требует включения файла реализации и интерфейса.
Структура позволяет нам создать единую файловую систему, и система автоматически создает внешние интерфейсы для другого кода.
Структура всегда передается в коде как копия, поэтому ее значение не может быть изменено.
Мы определяем структуру с помощью ключевого слова struct:
struct nameStruct { Определение 1 Определение 2 …… Определение N }
Мы определяем структуру под названием MarkStruct, свойства которой - оценки по трем предметам студентов, тип данных - Int:
struct MarkStruct{ var mark1: Int var mark2: Int var mark3: Int }
Мы можем доступно к членам структуры через имя структуры.
Пример использования структуры let Ключевые слова:
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, тип данных - целое число.
Затем мы используем let ключевое слово
В конце мы создаем пример структуры studentMarks() и передаем его в marks. . символом для доступа к значениям членов структуры.
Следующий пример демонстрирует создание копии структуры с помощью передачи значений.
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
,y
иz
Свойства, все три из них являются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
В приведенных выше примерах мы определили структуру markStruct, три свойства: mark1, mark2 и mark3. Внутри структуры свойства используются с помощью ключевого слова self.
Из примера мы можем хорошо понять, что пример структуры передается по значению.