Sobes.tech
Junior — Middle

Таҷрибаи худро дар истифодаи тегҳои корбарӣ ҳангоми эҷоди сохторҳои додаҳо мубодила кунед.

sobes.tech AI

Ҷавоб аз AI

Дар Go, тэгҳои истифодабаранда (struct tags) барои илова кардани метаданакҳо ба майдонҳои структураҳо истифода мешаванд, ки метавонанд дар сериализатсия, тасдиқ, кор бо базаҳои додаҳо ва дигар вазифаҳо истифода шаванд.

Таҷрибаи истифодаи тэгҳои фармоишӣ одатан дар бар мегирад:

  • Тартиб додани тэгҳо барои идоракунии рафтори китобхонаҳо, масалан, json:"номи майдон" барои нишон додани номи майдон ҳангоми сериализатсия ба JSON.
  • Эҷоди тэгҳои худ барои логикаи фармоишӣ, масалан, validate:"required,min=3" барои тавсифи қоидаҳои тасдиқ.
  • Истифодаи рефлексия (reflect) барои хондани тэгҳо ва тағир додани динамикии рафтори барнома.

Масалан, як тэги фармоишӣ ва хондани он тавассути рефлексия:

package main

import (
    "fmt"
    "reflect"
)

type User struct {
    Name  string `custom:"required"`
    Email string `custom:"optional"`
}

func main() {
    u := User{Name: "Alice", Email: "alice@example.com"}
    t := reflect.TypeOf(u)

    for i := 0; i < t.NumField(); i++ {
        field := t.Field(i)
        tag := field.Tag.Get("custom")
        fmt.Printf("Майдон: %s, Фармоишии махсус: %s\n", field.Name, tag)
    }
}

Ин иншо ба имкон медиҳад, ки сохторҳои маълумоти чандир ва васеъшаванда бо маълумоти иловагӣ эҷод карда шаванд, ки барои асбобҳо ва китобхонаҳои гуногун муфид аст.