Jak přiřadit výchozí hodnoty pro pole struktur v Golang?

Jak Priradit Vychozi Hodnoty Pro Pole Struktur V Golang



Golang je moderní programovací jazyk, který si v posledních letech získal popularitu. Jednou z výkonných funkcí Golangu je jeho schopnost definovat a manipulovat se strukturami. Struktury jsou uživatelem definované datové typy, které umožňují vývojářům seskupit související datová pole do jednoho objektu. V Go struktury může mít výchozí hodnoty přiřazené k jejich polím, což značně usnadňuje jejich inicializaci.

V této eseji prozkoumáme, jak přiřadit a výchozí hodnota pro pole struktur v Golangu.

Co jsou strukturovaná pole?

Za prvé, je důležité pochopit koncept strukturní pole . The strukturní pole jsou proměnné, které jsou seskupeny do a strukturovat objekt. Každý struct pole má název a datový typ. Například struktura, která představuje osobu, může mít pole jako jméno, věk a pohlaví.







Jak přiřadit výchozí hodnoty pro strukturní pole v Golangu?

Výchozí hodnoty lze přiřadit pro pole struktur v Go pomocí:



  • Výchozí nulové hodnoty
  • Konstruktéři
  • Strukturované literály
  • Výchozí hodnoty polí

1: Výchozí nulové hodnoty

V Go lze přiřadit výchozí hodnoty polím struktur pomocí „ nulová hodnota ' Vlastnosti. Tato funkce automaticky přiřadí výchozí hodnotu buď „ 0 “ nebo „ Nepravdivé ” do každého neinicializovaného pole v závislosti na typu dat. To znamená, že nemusíte explicitně nastavovat výchozí hodnoty pro každé pole ve struktuře, protože to udělá Go za vás.



Tato funkce se může hodit při práci s velkými strukturami s mnoha poli, protože šetří čas a námahu ručního nastavování výchozích hodnot pro každé pole.





Zde je příklad, který používá nulovou hodnotu k přiřazení výchozích hodnot pro pole struct:

hlavní balíček

import 'fmt'

typ Struktura osoby {
Název   řetězec
Věk    int
Výška plováku64
IsMale bool
}

func main ( ) {
p1 := Osoba { Název: 'John' , věk: 30 }
fmt.Println ( p1.Jméno )
fmt.Println ( p1.Věk )
fmt.Println ( p1.Výška )
fmt.Println ( p1.JeMuž )
}

Výše uvedený kód definuje osobu strukturovat se čtyřmi poli: Name, Age, Height a IsMale, přičemž všechna jsou datového typu bool. Poté vytvoříme novou instanci třídy Person, p1, a inicializujeme některá její pole pomocí strukturních literálů k určení názvů a hodnot polí. The výchozí nulové hodnoty pro pole, která nebyla explicitně nastavena během inicializace, se zobrazí při tisku hodnot polí pomocí fmt.Println .



Výstup

2: Konstruktéři

Napsáním a konstruktér funkce pro struct, můžete také dát výchozí hodnoty polím struct v Golang. The konstruktér Funkce vytvoří novou instanci struktury a nastaví výchozí hodnoty pro její pole. Tato metoda šetří námahu a čas, zejména při interakci s obrovskými strukturami s mnoha poli.

Zde je příklad, jak definovat a konstruktér funkce s výchozími hodnotami polí pro strukturu:

hlavní balíček

import 'fmt'

typ Struktura osoby {
Název    řetězec
Věk     int
Řetězec adresy
}
func NewPerson ( ) * Osoba {
vrátit se & Osoba {
Název: 'John Doe' ,
Stáří: 30 ,
Adresa: '123 Main St' ,
}
}
func main ( ) {
p := Nová osoba ( )
fmt.Println ( p.Jméno, p.Věk, p.Adresa )
}

Ve výše uvedeném kódu a Osoba je definována struktura, stejně jako nová osoba() funkce, která vytvoří novou instanci Osoba struct s předem určenými výchozími hodnotami. voláme nová osoba() v hlavní() k vytvoření nové instance osoby s výchozí hodnoty polí a poté vytiskneme hodnoty polí této instance.

Výstup

3: Strukturované literály

V Golangu můžete nastavit výchozí hodnoty pro pole struktur pomocí strukturní literály také. Jednoduše vytvořte novou instanci struktury a nastavte hodnoty pro každé pole, které je třeba inicializovat. Pokud chcete nastavit výchozí hodnoty pro pole, která explicitně neinicializujete, můžete použít funkci nulové hodnoty.

Zde je příklad použití strukturní literály pro nastavení výchozích hodnot polí pro strukturu:

hlavní balíček

import 'fmt'

typ Struktura osoby {
Název    řetězec
Věk     int
Řetězec adresy
}
func main ( ) {
p := Osoba {
Název: 'John Doe' ,
Stáří: 30 ,
}
fmt.Println ( p.Jméno, p.Věk, p.Adresa )
}

Ve výše uvedeném kódu definujeme a Osoba struct v tomto příkladu a vytvořte jeho novou instanci pomocí literálu struct a výchozích hodnot pro jeho pole. Nový Osoba instance je vytvořena v main() s některými hodnotami polí vyplněnými a jinými ponechána prázdnými. Vzhledem k tomu, Adresa pole není inicializováno, obdrží prázdný řetězec, který je výchozí hodnotou pro toto pole. Nakonec vytiskneme hodnoty polí instance osoby.

Výstup

4: Výchozí hodnoty polí

Přidělování výchozí hodnoty na strukturní pole v Go je přímočarý proces. The výchozí hodnota pro pole struct lze nastavit pomocí syntaxe fieldName:defaultValue . Zvažte například následující definici struktury:

typ Struktura osoby {
Řetězec názvu
Věk int
Řetězec pohlaví
}

Přiřadit výchozí hodnoty do polí této struktury můžeme použít následující syntaxi:

p := Osoba {
Název: 'John Doe' ,
Stáří: 30 ,
Rod: 'Mužský' ,
}

Ve výše uvedeném příkladu jsme přiřadili výchozí hodnoty do polí struktury Osoba. Pokud při inicializaci vynecháme některou z hodnot, výchozí hodnota bude místo toho použito. Pokud například inicializujeme objekt Person takto:

p := Osoba {
Název: 'Jane Doe' ,
}

Výsledný objekt Osoba bude mít výchozí hodnoty pro pole Věk a Pohlaví, která jsou 0 a prázdný řetězec.

Zde je úplný kód, který ilustruje výše uvedený proces:

hlavní balíček
import 'fmt'

typ Struktura osoby {
Název   řetězec
Věk    int
Řetězec pohlaví
}
func main ( ) {
p1 := Osoba {
Název: 'John Doe' ,
Stáří: 30 ,
Rod: 'Mužský' ,
}
fmt.Println ( p1 )

p2 := Osoba {
Název: 'Jeremy' ,
}
fmt.Println ( p2 )
}

Ve výše uvedeném příkladu vytváříme strukturu Osoba, která má tři pole: Jméno, int představující věk a Gender, řetězec představující pohlaví. Syntaxe inicializace struktury se pak použije ke konstrukci dvou instancí osoby, p1 a p2. p1 je inicializováno hodnotami „John Doe“ pro jméno, „30“ pro věk a „Muž“ pro pohlaví, což jsou všechny hodnoty, které byly výslovně uvedeny. Protože jsme nezadali hodnoty pro Věk a Pohlaví, budou jim přiřazeny výchozí hodnoty 0 a prázdný řetězec. p2 je zpočátku inicializován pouze s poskytnutým polem Name.

Výstup

Závěr

Přidělování výchozí hodnoty in Go je základním aspektem programování s tímto jazykem. Pomáhá zajistit, aby každá vytvořená instance struktury měla přiřazena výchozí data. Pomocí kterékoli z výše popsaných metod mohou vývojáři nastavit výchozí hodnoty strukturních polí efektivně.