class
и структуры ключевым словом struct
. Оба имеют своё полное определение внутри пары фигурных скобок:
class SomeClass {
// здесь идёт определение класса
}
struct SomeStructure {
// здесь идёт определение структуры
}
UpperCamelCase
(такие как SomeClass
или SomeStructure
), чтобы совпасть с заглавными именами стандартных типов Swift (таких как String
, Int
, Bool
). Обратно, давайте всегда свойствам и методам имена с маленькой буквы, чтобы отделить их от имён типов. Такие имена называются lowerCamelCase
(такие как frameRate
и incrementCount
).
struct Resolution {
var width = 0
var height = 0
}
class VidoeMode {
var resolution = Resolution()
var interlaced = false
var frameRate = 0.0
var name: String?
}
Пример определяет новую структуру с названием Resolution
для описания разрешения экрана в пикселях. Эта структура имеет два хранимых свойства с названиями width
и height
. Хранимые свойства - это константы или переменные, которые хранятся в качестве части класса или структуры. Эти два свойства выведены в тип Int
путём задания им изначального значения 0.
VideoMode
для описания конкретного режима видео для видеодисплея. Этот класс имеет четыре переменных хранимых свойства. Первое, resolution
, инициализируется новым экземпляром структуры Resolution
, что выводит тип свойства в Resolution
. Для трёх других свойств экземпляры VideoMode
будут инициализированы настройкой interlaced
значения false
(что означает "нечрезстрочное видео"), частотой кадров воспроизведения 0.0, и опциональным значением типа String
с названием name
. Свойство name
автоматически получает значение по-умолчанию nil
или "нет значения name
", так как это опциональный тип.
Resolution
и класса VideoMode
только описывает, как они будут выглядеть. Сами по себе они не описывают никакого конкретного разрешения или режима экрана. Чтобы сделать это, Вам нужно создать экземпляр структуры или класса.
Resolution()
или VideoMode()
. Это создаёт новый экземпляр класса или структуры со всеми свойствами, установленными в их дефолтные значения.
let someResolution = Resolution()
let someVideoMode = VidoeMode()
print("Ширина у someResolution равна \(someResolution.width)")
// Выведет "Ширина у someResolution равна 0"
В этом примере, someResolution.width
ссылается на свойство width/
объекта someResolution
и возвращает значение по-умолчанию 0.
width
в свойстве resolution
у VideoMode
:
print("Ширина у someVideoMode равна \(someVideoMode.resolution.width)")
// Выведет "Ширина у someVideoMode равна 0"
someVideoMode.resolution.width = 1280
print("Ширина у someVideoMode теперь равна \(someVideoMode.resolution.width)")
// Выведет "Ширина у someVideoMode теперь равна 1280"