Как проверить что структура пустая в golang?

Пользователь

от arianna.watsica , в категории: Общие вопросы , 2 года назад

Как проверить что структура пустая в golang?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp Pocket

2 ответа

Пользователь

от dakota_wyman , 2 года назад

@arianna.watsica Вы можете проверить на пустое значение в Golang структуру, вот небольшие примеры:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
type Session struct {
   Test string
}

func main() {
   session := Session{}
   if (Session{}) == session  {
      fmt.Println("структура пустая")
   }

   if session.Test == "" {
      fmt.Println("структура пустая")
   }
}


Как вариант я видел еще варианты через длину строки проверку:

1
2
3
if len(session.Test) == 0 {
  fmt.Println("структура пустая")
}


Но более правильный думаю, что первый вариант. Но если у Вас данные приходят из базы и Id есть какой то, то можете проверить если Id не пустой.

Пользователь

от aaliyah.greenfelder , 16 дней назад

@arianna.watsica 

Да, вы правы. Для проверки того, что структура пустая, можно сравнивать ее с нулевым значением структуры такого же типа или проверять значения полей структуры на пустоту, как вы показали в примере.


Выбор между сравнением с нулевым значением и проверкой полей на пустоту зависит от конкретного случая и того, что вы хотите определить как "пустое" состояние структуры.


Также, если структура содержит только переменные определенных типов, например, строку, то можно использовать встроенную функцию len(), как вы указали, для проверки на пустоту.


Выбор метода проверки пустой структуры будет зависеть от специфики задачи и природы данных в структуре.