GoDasturchi
Building Structs

Building Structs

Structlarni yaratish

example.go
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.

example.go
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).MaxConns 100 qaytaradi

Stuck? Reveal a hint to help you.

Hints (0/3)

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

OUTPUT

$ go run main.go
Kodingizni ishga tushiring

Building Structs

Structlarni yaratish

example.go
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.

example.go
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).MaxConns 100 qaytaradi

Stuck? Reveal a hint to help you.

Hints (0/3)

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