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
Создание API ввода вопросов на разных языках программирования (Python, PHP, Go и Node.js)
Создание API ввода вопросов на разных языках программирования (Python, PHP, Go и Node.js)
API ввода вопросов - это полезный инструмент для интеграции моделей машинного обучения, таких как ChatGPT, в приложения, требующие обработки...
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

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