- Анонимные структуры
- ------------------------------------------------------------------------------------
- Вы также можете объявить, что переменная реализует структурный тип, без предварительного присвоения имени этому структурному типу.
- Такие структуры называют анонимными:
- В данном примере переменные Person и pet относятся к анонимному структурному типу.
Присвоение значений полям анонимной структуры (и их чтение) выполняется точно так же, как и в случае именованного структурного типа. - Присвоение значений полям анонимной структуры (и их чтение) выполняется точно так же, как и в случае именованного структурного типа.
- Подобно тому как экземпляр именованной структуры можно инициализировать с помощью литерала структуры, то же самое можно сделать и в случае анонимной структуры.
Здесь закономерно для многих может возникнуть вопрос: нафиг может понадобиться тип данных, связанный только с одним экземпляром? - Здесь закономерно для многих может возникнуть вопрос: нафиг может понадобиться тип данных, связанный только с одним экземпляром?
- Анонимные структуры удобно использовать в двух распространённых случаях.
- Первым случаем является преобразование внешних данных в структуру или, наоборот, структуры во внешние данные (например, данные в формате JSON или буферы протоколов).
- Эти виды преобразований называют демаршаллингом и маршаллингом данных.
Второй областью применения анонимных структур является написание тестов. Чуть позже будет пример среза анонимных структур при написании табличных тестов. - Второй областью применения анонимных структур является написание тестов. Чуть позже будет пример среза анонимных структур при написании табличных тестов.
- Сравнение значений структуры
- ------------------------------------------------------------------------------------
- Значения структур сопоставимы, если можно сравнить все их поля.
- В следующем листинге создаётся несколько значений структуры и применяется оператор сравнения, чтобы определить, равны ли они:
Do'stlaringiz bilan baham: |