Как да присвоите стойности по подразбиране за структурни полета в Golang?

Kak Da Prisvoite Stojnosti Po Podrazbirane Za Strukturni Poleta V Golang



Golang е модерен език за програмиране, който придоби популярност през последните години. Една от мощните характеристики на Golang е способността му да дефинира и манипулира структури. Структури са дефинирани от потребителя типове данни, които позволяват на разработчиците да групират свързани полета с данни в един обект. В Go, структури мога да имам стойности по подразбиране присвоени на техните полета, което прави инициализирането им много по-лесно.

В това есе ще проучим как да присвоим a стойност по подразбиране за структурно поле в Golang.

Какво представляват структурните полета?

Първо, важно е да разберете концепцията за структурни полета . The структурни полета са променливи, които са групирани, за да образуват a структура обект. всеки структурно поле има име и тип данни. Например структура, която представлява лице, може да има полета като име, възраст и пол.







Как да присвоите стойности по подразбиране за структурни полета в Golang?

Стойности по подразбиране може да се присвои за структурни полета в Go с помощта на:



  • Нулеви стойности по подразбиране
  • Конструктори
  • Структурни литерали
  • Стойности на полето по подразбиране

1: Нулеви стойности по подразбиране

В Go присвояването на стойности по подразбиране на структурни полета може да се постигне с „ нулева стойност ' особеност. Тази функция автоматично присвоява стойност по подразбиране на „ 0 ' или ' невярно ” към всяко неинициализирано поле, в зависимост от типа на данните. Това означава, че не е нужно изрично да задавате стойности по подразбиране за всяко поле в структурата, тъй като Go ще го направи вместо вас.



Тази функция може да бъде полезна, когато работите с големи структури с много полета, тъй като спестява време и усилия за ръчно задаване на стойности по подразбиране за всяко поле.





Ето пример, който използва нулевата стойност за присвояване на стойности по подразбиране за структурни полета:

основен пакет

импортиране 'fmt'

Тип Структура на личността {
Име   низ
Възраст    межд
Височина float64
IsMale bool
}

основна функция ( ) {
p1 := Човек { Име: 'Джон' , възраст: 30 }
fmt.Println ( p1.Име )
fmt.Println ( p1.Възраст )
fmt.Println ( p1.Височина )
fmt.Println ( p1.IsMale )
}

Горният код дефинира Лице структура с четири полета: Име, Възраст, Ръст и IsMale, всички от които са от тип данни bool. След това създаваме нов екземпляр на класа Person, p1, и инициализираме някои от неговите полета, като използваме структурни литерали, за да посочим имената и стойностите на полетата. The нулеви стойности по подразбиране за полетата, които не са били изрично зададени по време на инициализацията, се показват, когато отпечатате стойностите на полетата, използвайки fmt.Println .



Изход

2: Конструктори

Като напише a конструктор функция за структурата, можете също да зададете стойности по подразбиране за структурни полета в Golang. The конструктор функцията създава нов екземпляр на структурата и задава стойностите по подразбиране за нейните полета. Този метод спестява усилия и време, особено при взаимодействие с огромни структури с множество полета.

Ето пример как да дефинирате a конструктор функция със стойности на полето по подразбиране за структура:

основен пакет

импортиране 'fmt'

Тип Структура на личността {
Име    низ
Възраст     вътр
Адресен низ
}
функция NewPerson ( ) * Лице {
връщане и Лице {
Име: 'Джон Доу' ,
Възраст: 30 ,
адрес: '123 Main St' ,
}
}
основна функция ( ) {
p := NewPerson ( )
fmt.Println ( p.Име, p.Възраст, p.Адрес )
}

В горния код, a Лице struct е дефинирана, както и newPerson() функция, която създава нова инстанция на Лице структура с предварително зададени стойности по подразбиране. Обаждаме се newPerson() в основен () за създаване на нов екземпляр на Person стойности на полето по подразбиране и след това отпечатваме стойностите на полетата на този екземпляр.

Изход

3: Структурни литерали

В Golang можете да зададете стойности по подразбиране за структурни полета, като използвате структурни литерали както добре. Просто създайте нов екземпляр на структурата и задайте стойностите за всяко поле, което трябва да се инициализира. Ако искате да зададете стойности по подразбиране за полета, които не сте инициализирали изрично, можете да използвате функцията за нулева стойност.

Ето пример как да използвате структурни литерали за да зададете стойности на полето по подразбиране за структура:

основен пакет

импортиране 'fmt'

Тип Структура на личността {
Име    низ
Възраст     вътр
Адресен низ
}
основна функция ( ) {
p := Човек {
Име: 'Джон Доу' ,
Възраст: 30 ,
}
fmt.Println ( p.Име, p.Възраст, p.Адрес )
}

В горния код ние дефинираме a Лице struct в този пример и създайте нов негов екземпляр, като използвате struct литерал и стойности по подразбиране за неговите полета. Нов Лице екземплярът се създава в main() с попълнени стойности на някои полета, а други остават празни. Тъй като Адрес полето не е инициализирано, то получава празния низ, който е стойността по подразбиране за това поле. Накрая отпечатваме стойностите на полетата на екземпляра Person.

Изход

4: Стойности на полето по подразбиране

Възлагане стойности по подразбиране да се структурни полета в Go е лесен процес. The стойност по подразбиране за структурно поле може да се зададе с помощта на синтаксиса Име на полето: стойност по подразбиране . Например, разгледайте следната дефиниция на структура:

Тип Структура на личността {
Име низ
Възраст вътр
Низ за пол
}

Да възложа стойности по подразбиране към полетата на тази структура, можем да използваме следния синтаксис:

p := Човек {
Име: 'Джон Доу' ,
Възраст: 30 ,
Пол: 'Мъжки пол' ,
}

В горния пример сме присвоили стойности по подразбиране към полетата на структурата Person. Ако пропуснем някоя от стойностите по време на инициализацията, стойност по подразбиране ще се използва вместо това. Например, ако инициализираме обект Person по този начин:

p := Човек {
Име: 'Джейн Доу' ,
}

Полученият обект Person ще има стойности по подразбиране за полетата Възраст и Пол, които са съответно 0 и празен низ.

Ето пълен код, който илюстрира горния процес:

основен пакет
импортиране 'fmt'

Тип Структура на личността {
Име   низ
Възраст    межд
Низ за пол
}
основна функция ( ) {
p1 := Човек {
Име: 'Джон Доу' ,
Възраст: 30 ,
Пол: 'Мъжки пол' ,
}
fmt.Println ( p1 )

p2 := Лице {
Име: 'Джеръми' ,
}
fmt.Println ( p2 )
}

В горния пример изграждаме структура Person, която има три полета: Name, int, представляващо възраст, и Gender, низ, представляващ пол. Синтаксисът за инициализация на структурата след това се използва за конструиране на два екземпляра на Person, p1 и p2. p1 се инициализира със стойностите „John Doe“ за име, „30“ за възраст и „мъж“ за пол, които са стойности, които са изрично предоставени. Тъй като не сме дали стойности за възраст и пол, стойностите по подразбиране съответно 0 и празен низ ще им бъдат присвоени. p2 първоначално се инициализира само с предоставеното поле за име.

Изход

Заключение

Възлагане стойности по подразбиране in Go е съществен аспект от програмирането с този език. Помага да се гарантира, че всеки създаден екземпляр на структура има присвоени данни по подразбиране. Използвайки който и да е от методите, обяснени по-горе, разработчиците могат да задават стойности по подразбиране на структурни полета ефективно.