Go Testing определяет пользовательскую структуру

Я следил за структурой в файле tf, не могли бы вы помочь мне создать правильный structure, так как я новичок в Go.

Вот tf

   ipv4    = { 
      cidrblock = "10.0.0.0/16"
      secondary = [
            {
               cidrs     = "20.0.0.0/16"
               enabled   = true
            },
            {
               cidrs     = "30.0.0.0/16"
               enabled   = true
            }
      ]               
   

}

Итак, у меня есть объект строк, а также список объектов в основном объекте. Я мог бы сделать примитивный тип, например:

type ipv4 struct {
   cidrblock string
   cidrs     string
   enabled   bool
}

type ipv6 struct {
   border    string
   generate  bool
}

type Sets struct {
   Name      string
   IPv4      *ipv4
   IPv6      *ipv6
   Tags      map[string]string
   Tenancy   string
}

Но мне бы очень хотелось иметь сложную структуру

что вы имеете в виду под сложным интерфейсом?

ibrohimislam 23.04.2022 08:11

Я имею в виду, что хотел бы иметь что-то вроде; список>карта>список>карта. В основном я хотел бы иметь 1 единый интерфейс

Neon 23.04.2022 08:19

к сожалению, вы не можете сделать это со структурой. вы должны разбить его, определив структуры

ibrohimislam 23.04.2022 08:47

вы работаете над созданием какого-то поставщика терраформ? может это поможет: hashicorp.com/blog/writing-custom-terraform-providers

ibrohimislam 23.04.2022 08:48

Нет, я не создаю свой провайдер, мне нужно написать тест для модуля, однако, как я уже говорил, я не могу сделать структуру, может быть, вы можете привести пример, как я могу это сделать, разбивая структура?

Neon 23.04.2022 08:50

Возможно, то же самое, что и stackoverflow.com/questions/71879471/…

Matt Schuchard 23.04.2022 13:16
3 метода стилизации элементов HTML
3 метода стилизации элементов HTML
Когда дело доходит до применения какого-либо стиля к нашему HTML, существует три подхода: встроенный, внутренний и внешний. Предпочтительным обычно...
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
0
6
44
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

вы можете сделать что-то вроде этого:

type ipv4 struct {
    cidrblock string
    secondary []ipv4secondary
}

type ipv4secondary struct {
    cidrblock string
    enabled   bool
}

и используйте его как это:

example := ipv4{
    cidrblock: "10.0.0.0/16",
    secondary: []ipv4secondary{
        ipv4secondary{cidrblock: "20.0.0.0/16", enabled: true},
        ipv4secondary{cidrblock: "30.0.0.0/16", enabled: true},
    },
}

вот пример: https://go.dev/play/p/U7o0BbAis9T

Другие вопросы по теме