問題一覧
1
структура это
заименованный набор полей(свойств/состояний) определяющий новый тип данных
2
явное определение структуры
type nameStruct struct { a string b string age int }
3
если имеется ряд состояний одного типа
type stud struct { firstname, lastname, groupname string age, course int }
4
создание представителей структуры
stud1:=student{ firstname:"fedya", lastname:"petrov", age: 21 }
5
что будет если не все поля структуры указать?
заполнится нулевым значениями для типов данных
6
анонимные структуры
anonstudent :=struct { age int groupID int professorName string }{ age:23, groupID: 2, professorName: "Alexeev", } Удобно для определения экземпляра на месте.
7
доступ к состояниям
stud:=student{"Vova","Ivanov", 19} для получения доступа к состоянию используйте stud.firstname) другими словами название переменной точка поле состояния
8
можно ли изменять состояния?
да, получив доступ через . можно произвести изменениия
9
как инициализировать пустую структуру?
если есть готовая структура, то через а:=zerostudent{} все состояния структуры будут зеро значения
10
указатели на экземпляры структур
studPointer:=&student записываем в те де поля новые значения и все хорошо
11
увидел ли мы адрес в памяти для структуры?
нет, будет амперсант давать понять о том что это структура
12
работа с доступом к полям структуры stud:= &student(где Студент это структура имеющая поля)
stud:= &student(где Студент это структура имеющая поля) для доступа к полю структуры student используем: stud.запрашиваемоеполе(происходит неявное разименование указателя)
13
напиши структуру с анонимными полями
type hum struct { string int book } нельзя два одинаковых типа
14
напиши экземпляр структуры с анонимным полями
hum:=&human{ string: "aaaa", int: -1, bool: true, }
15
вложенные структуры это
использование одной структуры как тип поля в другой структуре type univer struct{ a string b string c int } type prof struct{ a string b string university univer }
16
создание экземпляра влож.структуры:
см фотр
17
как получить доступ к влож.полям в структуре
nameStruct.namePolyavosnivnoistuct.vlogennoePole
18
встроенные структуры(реализация наследования в го)
type builtStuct struct{ a string b string namebuiltStruct//название структуры встроенной }
19
создание экземпляра с встраиванием структур
см фото
20
для обращения к состояниям встроенной структуры
namemainStruct.namepolebuiltstruct
21
если совпадающие поля то
требуется явное обращение по всем полям структур
22
сравнение экземпляров структур на == происходит?
явное сравнение всех их полей друг с другом и если одно из всех полей не сравнимо, то и вся структура несравнима