Junior — Middle
Чӣ гуна интиқоли арзишҳои пешфарз дар параметрҳои функсияҳо дар забони Go амалӣ мешавад?
sobes.tech AI
Ҷавоб аз AI
В тили Go дар бораи параметрҳои функсия бо арзишҳои пешфарзӣ, ки дар баъзе забонҳои дигар (масалан, Python ё C++) мавҷуд аст, дастгирӣ нест. Барои татбиқ кардани чунин рафтор, одатан яке аз роҳҳои зерин истифода мешавад:
- Барои функсияҳо аз тариқи параметрҳои тағйирёбанда — ба функсия шумораи тағйирёбанда аргументҳоро дода ва дар дохили онҳояшонро санҷед:
func greet(name string, messages ...string) {
msg := "Hello"
if len(messages) > 0 {
msg = messages[0]
}
fmt.Println(msg, name)
}
// Зангҳо:
greet("Alice") // Hello Alice
greet("Bob", "Hi") // Hi Bob
- Истифодаи структураҳо бо танзимот — ба функсия структура бо параметрҳоро дода ва арзишҳои пешфарзиро дар вақти эҷод муайян кунед:
type Config struct {
Timeout int
}
func doSomething(cfg Config) {
if cfg.Timeout == 0 {
cfg.Timeout = 30 // арзиши пешфарзӣ
}
// ...
}
// Занг:
doSomething(Config{})
- Эҷоди функсияҳои ёрирасон (конструкторҳо) бо маҷмӯъҳои гуногуни параметрҳо.
Ба ҳамин тариқ, дар Go арзишҳои пешфарзӣ тавассути логикаи ошкор дар дохили функсия ё тавассути структураҳо амалӣ мешаванд, на тавассути синтаксиси забон.