Go struct (tuzilma)
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: 4500Struct’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: 4500W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
