استراکت (Struct)
استراکت (Struct) یعنی چند «عضو (Member)» با نوع های مختلف را در یک متغیر جمع کنیم. مثل کارت دانش آموزی که نام، سن و کلاس را یک جا نگه می دارد. با استراکت در Go داده های مرتبط کنار هم می مانند.
تعریف استراکت در Go
برای تعریف ساختار، از کلیدواژه های type و struct استفاده کن. هر «فیلد (Field)» یک نام و یک نوع دارد.
package main
// تعریف نوع Person با چند فیلد
type Person struct {
name string
age int
job string
salary int
}
دسترسی به فیلدها با نقطه
برای خواندن یا نوشتن فیلدها از عملگر نقطه استفاده کن. این کار مانند «شیء.فیلد» است.
package main
import (
"fmt"
)
type Person struct {
name string
age int
job string
salary int
}
func main() {
var pers1 Person
var pers2 Person
// مشخصات pers1
pers1.name = "Hege"
pers1.age = 45
pers1.job = "Teacher"
pers1.salary = 6000
// مشخصات pers2
pers2.name = "Cecilie"
pers2.age = 24
pers2.job = "Marketing"
pers2.salary = 4500
// چاپ اطلاعات pers1
fmt.Println("Name:", pers1.name)
fmt.Println("Age:", pers1.age)
fmt.Println("Job:", pers1.job)
fmt.Println("Salary:", pers1.salary)
// چاپ اطلاعات pers2
fmt.Println("Name:", pers2.name)
fmt.Println("Age:", pers2.age)
fmt.Println("Job:", pers2.job)
fmt.Println("Salary:", pers2.salary)
}
ارسال استراکت به تابع
می توانی استراکت را به تابع بدهی. سپس داخل تابع فیلدها را بخوان.
package main
import (
"fmt"
)
type Person struct {
name string
age int
job string
salary int
}
func printPerson(pers Person) {
fmt.Println("Name:", pers.name)
fmt.Println("Age:", pers.age)
fmt.Println("Job:", pers.job)
fmt.Println("Salary:", pers.salary)
}
func main() {
var pers1 Person
var pers2 Person
pers1.name = "Hege"
pers1.age = 45
pers1.job = "Teacher"
pers1.salary = 6000
pers2.name = "Cecilie"
pers2.age = 24
pers2.job = "Marketing"
pers2.salary = 4500
printPerson(pers1)
printPerson(pers2)
}
مراحل عملی
- یک نوع استراکت با فیلدهای لازم بساز.
- یک متغیر از آن نوع ایجاد کن.
- فیلدها را مقداردهی و سپس استفاده کن.
نکته: آرایه برای نوع یکسان مناسب است؛ استراکت برای نوع های متفاوت.
نکته: اسم گذاری فیلدها خوانایی را بهتر می کند.
بخش های مرتبط: بازگشت (Recursion)، پارامترها/آرگومان ها، و نقشه ها (Maps). برای دسترسی سریع، این لینک را نگه دار: استراکت در Go.
جمع بندی سریع
- استراکت داده های ناهم نوع را کنار هم می آورد.
- با نقطه به فیلدها دسترسی بگیر.
- می توانی استراکت را به تابع بدهی.
- نام گذاری خوب، دیباگ را آسان می کند.