Типы данных
Программа 20.5. Объявление перечисляемого типа.
Enum Week Monday Tuesday Wednesday Thursday Friday Saturday Sunday End EnumSub Weekend() Dim day As Week Day = Saturday End SubПосле описания простейшего структурного типа данных (массива) перейдем к более сложному типу, а точнее, к типу, определяемому пользователем. В то время как массив представляет собой совокупность однотипных переменных, хотелось бы создать объединение элементов разных типов (запись).
Например, мы могли бы описать человека при помощи массива целых чисел: Dim Person () As Integer, где Person (1) задает рост, Person (2) – Вес, Person(3) – объем грудной клетки и т. д. Но это все элементы одного типа integer, а как же быть когда мы захотим определить не менее важный параметр человека – его имя, имеющее тип string, или дату рождения типа Date? Решением является создание записи. В нашем случае это будет выглядеть следующим образом: мы создаем пользовательский тип данных Person, элементами которого являются значения разных типов. Обращение же к таким переменным строится следующим образом: Person › Weight или Person › Name.
Конечно, перечисляемый тип тоже определяется пользователем, но это простой тип данных.
После небольшого введения дадим точное определение записи и синтаксиса определения пользовательского типа. Запись – это структурированный тип данных, компоненты которого обычно называются полями, имеют имя и могут принадлежать к различным типам данных.
[Private |Public] Type имяТипа имяПоля [([<размер>]}] As типДанных [имяПоля [ ([<размер>]) ] As типДанных] End TypeИсходя из синтаксической конструкции, сразу можно сказать, что тип определяется либо на уровне модуля, либо на уровне приложения. Далее идет ключевое слово туре и собственно имя типа. После этого идет объявление полей нового типа. Это могут быть простые переменные и массивы встроенных типов, а также переменные и массивы уже определенных типов пользователя, которые в свою очередь могут иметь любую вышеуказанную структуру.
Для тех, кого последнее предложение заставило задуматься, небольшое пояснение. Определение записи можно рассматривать как дерево. Корень – это имя типа, а вершины – имена полей, которые могут являться корнями подобного же дерева. Не допускается использование рекурсивных определений, т. е. нельзя объявить тип следующим образом:
Type Заяц Волк As Заяц End TypeВ приведенной ниже программе мы объявляем тип Person, имеющий поля name (имя) и birthday (дата рождения) простых типов. Далее мы объявляем тип Book, имеющий поле author определенного выше типа Person, поле title (название книги) типа string и поле content (названия глав книги), представляющее собой динамический массив типа string. После объявления типов мы объявляем одномерный массив типа Book и полностью инициализируем второй элемент массива, используя для доступа к полям записей точечную нотацию. Небольшой нюанс при инициализации поля content: поскольку это динамический массив, его необходимо переопределить. В конце просто выводится название одной из глав книги.
— Регулярная проверка качества ссылок по более чем 100 показателям и ежедневный пересчет показателей качества проекта.
— Все известные форматы ссылок: арендные ссылки, вечные ссылки, публикации (упоминания, мнения, отзывы, статьи, пресс-релизы).
— SeoHammer покажет, где рост или падение, а также запросы, на которые нужно обратить внимание.
SeoHammer еще предоставляет технологию Буст, она ускоряет продвижение в десятки раз, а первые результаты появляются уже в течение первых 7 дней. Зарегистрироваться и Начать продвижение
Программа 20.6. Объявление типов.
Public Type Person name As Stringbirthday As Date End Type Public Type Book author As Person title As Stringcontent() as String End Type Sub TypeExample() Dim arrBook(l) As Book arrBpok(1).author.name = "Федор Новиков"arrBook(l).author.birthday = #10/10/1951# arrBook(l).title = "Microsoft Office 2001 в целом"ReDim arrBook(1).content(0 To 1) arrBook(1).content(0) = "Введение"MsgBox(arrBook(1).content(0)) End Sub