Last updated
Last updated
Go'da tekrarlı işler için for
'a ihtiyacınız var. Go içerisinde while
, do
, until
anahtar kelimeleri yoktur sadece for
kullanabilirsiniz ve bu iyi bir şey!
Hadi bir karakteri 5 kez tekrar eden bir fonksiyon için test yazalım
Şimdiye kadar yeni bir şey yok, bu yüzden pratik yapmak için kendiniz yazmaya çalışın.
./repeat_test.go:6:14: undefined: Repeat
Disiplini koruyun! Testin düzgün bir şekilde başarısız olması için şu anda yeni bir şey bilmenize gerek yok.
Yapmanız gereken tek şey kodu derlemek için yeterli değişikliği yapmak, bu sayede kodunuzun iyi yazıldığını kontrol etmek için test edebilirsiniz.
Bazı basit problemler için test yazacak kadar Go bilmek hoş değil mi? Bu, artık production koduyla istediğiniz kadar oynayabileceğiniz ve umduğunuz gibi davranmasını bildiğiniz anlamına gelir.
repeat_test.go:10: expected 'aaaaa' but got ''
for
sözdizimi çok dikkat çekici değildir ve çoğu C benzeri dillerde olduğu gibidir.
C, Java veya JavaScript dillerinin aksine, for döngüsünün 3 bileşenini saran parantezler yoktur ve süslü parantezler { }
her zaman zorunludur. Muhtemelen şu satırda ne olduğunu merak ediyorsunuz.
Testi çalıştırın ve geçtiğini görün.
Şimdi düzenlemenin ve yeni bir atama +=
operatörünü tanıtma zamanı.
+=
operatörü "ekle ve ata operatörü" olarak bilinir. Sağdaki değeri soldaki depere ekler ve sonucu soldaki değere atar. Integerlar gibi diğer tiplerlede çalışır.
Kodun teste çok benzediğni sizde göreceksiniz.
testing.B
şifreli olarak adlandırılan b.N
'e erişmenizi sağlar.
Kıyaslama (benchmark) kodu çalıştırıldığında b.N
kere çalışır ve ne kadar sürdüğünü ölçer.
Kodun çalışma süresni önemsememelisiniz, framework bu durum için neyin "iyi" bir değer olduğuna karar verecek ve bazı iyi sonuçlar elde etmeniz için size izin verecek.
Benchmarkı çalıştırmak için go test -bench=.
(Windows Powershell'de iseniz go test -bench="."
)
136 ns/op
fonksiyonumuzun çalışma süresinin ortalama 136 nanosaniye (benim bilgisayarımda) sürdüğünü gösteriri. Bu iyi bir değer! Bunu test etmek için 10000000 kere çalıştı.
NOT Benchmarklar varsayılan olarak ardışık çalışır.
Testi değiştir, bu sayede çağıran kişi karakterin kaç kez tekrarlanacağını belirleyebilir ve sonradan kodu düzeltebilir
Fonksiyonunu dokümente etmek için ExampleRepeat
yaz
Daha fazla TDD pratiği
for
öğrenildi
Benchmarkın (kıyaslama) nasıl yazıldığı öğrenildi
Değişken tanımlamak için bir süre :=
kullanmıştık ancak :=
basitçe . Burada sadece string
değişkeni tanımladık. Aynı zamanda var
ile fonksiyon tanımlayabildiğimizi ileride göreceğiz.
for döngüsünün farklı kullanımlarını bulabilirsiniz.
Go'da yazmak dilin diğer birinci sınıf özelliklerindendir ve test yazmaya çok benzer.
paketine bir göz atın. Yararlı olabileceğini düşündüğünüz fonksiyonları bulun ve burada yaptığımız gibi testler yazarak bunları deneyin. Standard kütüphaneyi öğrenmek için zaman ayırmak ileride gerçekten işe yarayacak.
Bu sayfa tarafından çevrildi.