Go struct (tuzilma)


ULASHISH

Go struct’lar (tuzilmalar)

Struct (structure — tuzilma so‘zining qisqartmasi) turli ma’lumot tiplaridagi a’zolardan iborat to‘plamni bitta o‘zgaruvchida yaratish uchun ishlatiladi.

Massivlar bir xil ma’lumot tipidagi bir nechta qiymatni bitta o‘zgaruvchida saqlash uchun ishlatilsa, struct’lar turli ma’lumot tiplaridagi bir nechta qiymatni bitta o‘zgaruvchida saqlash uchun ishlatiladi.

Struct ma’lumotlarni guruhlab, yozuvlar yaratish uchun foydali bo‘lishi mumkin.


Struct’ni e’lon qilish

Go tilida struct’ni (tuzilmani) e’lon qilish uchun type va struct kalit so‘zlaridan foydalaning:

Sintaksis

type struct_name struct {   member1 datatype;   member2 datatype;   member3 datatype;   ... }

Misol

Bu yerda quyidagi a’zolarga ega Person struct tipini e’lon qilamiz: name, age, job va salary:

type Person struct {   name string   age int   job string   salary int }

Maslahat: E’tibor bering, yuqoridagi struct a’zolari turli ma’lumot tiplariga ega. name va job string tipida, age va salary esa int tipida.


Struct a’zolariga murojaat qilish

Struct’ning istalgan a’zosiga murojaat qilish uchun struct o‘zgaruvchisi nomi va struct a’zosi orasida nuqta operatoridan (.) foydalaning:

Misol

package main import "fmt" type Person struct {   name string   age int   job string   salary int } func main() {   var pers1 Person   var pers2 Person   // Pers1 specification   pers1.name = "Hege"   pers1.age = 45   pers1.job = "Teacher"   pers1.salary = 6000   // Pers2 specification   pers2.name = "Cecilie"   pers2.age = 24   pers2.job = "Marketing"   pers2.salary = 4500   // Access and print Pers1 info   fmt.Println("Name: ", pers1.name)   fmt.Println("Age: ", pers1.age)   fmt.Println("Job: ", pers1.job)   fmt.Println("Salary: ", pers1.salary)   // Access and print Pers2 info   fmt.Println("Name: ", pers2.name)   fmt.Println("Age: ", pers2.age)   fmt.Println("Job: ", pers2.job)   fmt.Println("Salary: ", pers2.salary) }

Natija:

Name: Hege
Age: 45
Job: Teacher
Salary: 6000
Name: Cecilie
Age: 24
Job: Marketing
Salary: 4500
O‘zingiz sinab ko‘ring »


Struct’ni funksiya argumenti sifatida uzatish

Struct’ni funksiya argumenti sifatida quyidagicha uzatishingiz ham mumkin:

Misol

package main import "fmt" type Person struct {   name string   age int   job string   salary int } func main() {   var pers1 Person   var pers2 Person   // Pers1 specification   pers1.name = "Hege"   pers1.age = 45   pers1.job = "Teacher"   pers1.salary = 6000   // Pers2 specification   pers2.name = "Cecilie"   pers2.age = 24   pers2.job = "Marketing"   pers2.salary = 4500   // Print Pers1 info by calling a function   printPerson(pers1)   // Print Pers2 info by calling a function   printPerson(pers2) } func printPerson(pers Person) {   fmt.Println("Name: ", pers.name)   fmt.Println("Age: ", pers.age)   fmt.Println("Job: ", pers.job)   fmt.Println("Salary: ", pers.salary) }

Natija:

Name: Hege
Age: 45
Job: Teacher
Salary: 6000
Name: Cecilie
Age: 24
Job: Marketing
Salary: 4500
O‘zingiz sinab ko‘ring »

W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!