значения по умолчанию и различительные ненициализированные поля в go
в go, примитивные типы имеют значения дефолта. Например, целые числа (int) инициализируются до 0. Однако при работе с структурами различия между значением 0 и ненициализированным полем может быть сложным. Импорт "журнал" Тип теста struct { Testintone Int testinttwo int } func main () { S: = test {testintone: 0} log.println (s) }. Тем не менее, TestIntone был явно установлен на 0, в то время как TestintTwo инициализирован значением по умолчанию. Эта двусмысленность может привести к путанице при определении того, какие поля были явно установлены. Следовательно, невозможно узнать, является ли нулевое значение результатом инициализации или преднамеренного назначения. nil.
type test struct { testintone *int testinttwo *int }
package main import "log" type test struct { testIntOne int testIntTwo int } func main() { s := test{testIntOne: 0} log.Println(s) }
создать метод сеттера:
] вы можете создать метод для установки значения поля и трека, независимо от того, было ли оно установлено. Testintone Int testinttwo bool // треки, если testinttwo был установлен } func (t *test) setteStintTwo (val int) { t.testinttwo = val t.issettestinttwo = true } func main () { S: = тест {} s.settestinttwo (0) fmt.println (s.issettestinttwo) // Вывод: true } ]
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3