GO

GO — استراکت (Struct)

آخرین بروزرسانی: 1404/08/14

استراکت (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)
}

مشاهده در ادیتور

مراحل عملی

  1. یک نوع استراکت با فیلدهای لازم بساز.
  2. یک متغیر از آن نوع ایجاد کن.
  3. فیلدها را مقداردهی و سپس استفاده کن.

نکته: آرایه برای نوع یکسان مناسب است؛ استراکت برای نوع های متفاوت.

نکته: اسم گذاری فیلدها خوانایی را بهتر می کند.

بخش های مرتبط: بازگشت (Recursion)، پارامترها/آرگومان ها، و نقشه ها (Maps). برای دسترسی سریع، این لینک را نگه دار: استراکت در Go.

جمع بندی سریع

  • استراکت داده های ناهم نوع را کنار هم می آورد.
  • با نقطه به فیلدها دسترسی بگیر.
  • می توانی استراکت را به تابع بدهی.
  • نام گذاری خوب، دیباگ را آسان می کند.