Seçenek İşlevleri
İşlevlerle yapılandırın
Seçenek İşlevleri, CoddyKit'te ücretsiz bir Go Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Go Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Go Academy kursu toplamda 4 dersten oluşur.
İşlevlerle Yapılandırma
Temel fikir şudur: Her isteğe bağlı ayarı, bir yapılandırmayı değiştiren bir işlev olarak gösterin. Bunlara “seçenek işlevleri” denir.
Seçenek Türü
Bir Option türünü, yapılandırma yapısının işaretçisini alan bir işlev olarak tanımlayın.
package main
import "fmt"
type Config struct {
Port int
Timeout int
}
type Option func(*Config)
func main() {
var o Option
fmt.Println(o == nil)
}Seçenek Yazma
Bir seçenek, tek bir alanı ayarlayan bir kapanış döndürür. WithPort(9000), Port = 9000 atamasını yapan bir işlev üretir.
package main
import "fmt"
type Config struct{ Port int }
type Option func(*Config)
func WithPort(p int) Option {
return func(c *Config) { c.Port = p }
}
func main() {
c := &Config{}
WithPort(9000)(c)
fmt.Println(c.Port)
}Kapanışlar Değeri Yakalar
Döndürülen işlev, bağımsız değişkeni kapsar. WithPort(9000), daha sonra uygulanana kadar 9000 değerini hatırlar.
Birden Çok Seçenek
Her ayar kendi seçenek işlevine sahip olur. Bunların tümü Option türünü paylaşır.
package main
import "fmt"
type Config struct {
Port int
Timeout int
}
type Option func(*Config)
func WithPort(p int) Option { return func(c *Config) { c.Port = p } }
func WithTimeout(t int) Option { return func(c *Config) { c.Timeout = t } }
func main() {
c := &Config{}
WithPort(80)(c)
WithTimeout(15)(c)
fmt.Printf("%+v\n", *c)
}Boole Bayrağı Seçenekleri
Parametre almayan bir seçenek, bir bayrağı açıp kapatabilir.
package main
import "fmt"
type Config struct{ TLS bool }
type Option func(*Config)
func WithTLS() Option { return func(c *Config) { c.TLS = true } }
func main() {
c := &Config{}
WithTLS()(c)
fmt.Println(c.TLS)
}Seçenek Dilimini Uygulama
Seçenekleri bir dilimde toplayın ve her birini bir döngüde uygulayın — bir sonraki derste oluşturacağınız oluşturucunun özü budur.
package main
import "fmt"
type Config struct{ Port, Timeout int }
type Option func(*Config)
func WithPort(p int) Option { return func(c *Config) { c.Port = p } }
func WithTimeout(t int) Option { return func(c *Config) { c.Timeout = t } }
func main() {
c := &Config{}
opts := []Option{WithPort(8080), WithTimeout(30)}
for _, opt := range opts {
opt(c)
}
fmt.Printf("%+v\n", *c)
}Sıra Önemlidir
Seçenekler sırayla uygulanır. İki seçenek aynı alanı ayarlarsa sonuncusu kazanır — bazen kullanışlı, bazen belgelenmesi gereken bir hata kaynağıdır.
Adlandırma Kuralı
Geleneksel olarak seçenek oluşturucularına With... adı verilir (örneğin WithPort, WithTLS); böylece çağrı noktaları İngilizce gibi okunur.
Seçenekler Mantık İçerebilir
Seçenek yalnızca bir işlev olduğundan, sadece atama yapmakla kalmayıp doğrulama yapabilir, hesaplayabilir veya değerleri birleştirebilir.
Burada İşlevler Neden Yapılardan Daha İyi
- Yalnızca belirttiğiniz alanları ayarlayın
- Çağrı noktasında kendini açıklayan adlar kullanın
- Çağıranları bozmadan yeni seçenekler ekleyin
Hızlı Denetim
Seçenek işlevleri bilginizi sınayın.
Özet
Seçenek işlevleri oluşturmayı öğrendiniz.
type Option func(*Config)tanımlayınWithXoluşturucuları, yapılandırmayı değiştiren kapanışlar döndürür- Bir seçenek dilimini döngüde uygulayın
- Sıra önemlidir; son yazma işlemi kazanır
Yapay zeka eğitmeniyle Go öğren — ücretsiz
Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.
- Kurslar
- 51
- Dersler
- 203
Sıkça Sorulan Sorular
“Seçenek İşlevleri” dersi ücretsiz mi?
Evet — “Seçenek İşlevleri” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Go Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Go Academy kursu toplamda 4 dersten oluşur.
“Seçenek İşlevleri” dersinde ne öğreneceğim?
İşlevlerle yapılandırın Go Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Go Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Go Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.
“Seçenek İşlevleri” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Go Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Go Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.