Building Structs
Structlarni yaratish
func NewServer(port int) Server {
return Server{
Port: port,
Timeout: 30,
MaxConn: 100,
}
}Ba'zan struct sozlashni talab qiladi. Balki ba'zi maydonlar har doim aniq qiymatdan boshlanishi kerak, yoki structni yaratishdan oldin kirishlarni tekshirmoqchisiz. Har bir chaqiruvchiga buni o'zi hal qilishga qo'yish o'rniga, uni funksiyaga o'raysiz.
Go'ning andazasi: bu funksiyalarni NewXxx deb nomlang. NewServer, NewUser, NewProduct. Butun ekotizim shu andazaga amal qiladi. Newdan keyin tur nomini ko'rsangiz, u o'sha turni yaratib qaytarishini bilasiz.
Chaqiruvchi faqat muhim narsani ko'rsatadi. Funksiya qolganini hal qiladi.
s := NewServer(8080) // Timeout va MaxConn siz uchun o'rnatiladi>_ Exercise
Host string, Port int, MaxConns int maydonlariga ega Config struct'ini aniqlang.
Parametrlardan Host va Portni o'rnatadigan, MaxConns'ni esa 100ga o'rnatadigan NewConfig(host string, port int) Config funksiyasini yozing.
Misollar:
- •
NewConfig("localhost", 8080)Config{Host: "localhost", Port: 8080, MaxConns: 100}qaytaradi - •
NewConfig("0.0.0.0", 443).MaxConns100qaytaradi
Stuck? Reveal a hint to help you.
Key Takeaway
Key Takeaway:
Structlarni mos standart qiymatlar bilan yaratish uchun NewXxx funksiyalarini yozing. Chaqiruvchilar muhim narsani uzatadi, funksiya esa qolganini to'ldiradi.
NEXT UP
Structs That Do Things
$ go run main.go
Kodingizni ishga tushiring