Skip to content

Day12

Kullanıcıdan girdi almak için işaretçilerle ve tamamlanmış bir programla devam edeceğiz.

Dün (Gun 11) kendi içinde yer alan ilk Go programımızı oluşturduk ve kullanıcıdan giriş almak için değişkenleri kodumuzun içine yerleştirdik ve değerlerini verdik. Şimdi, kullanıcıdan giriş alarak son mesajın değişkenine değer vereceğiz.

Ne heyecan verici!

Kullanıcının Girişini Almak

Bunu yapmadan önce, kullanıcı girişini almadan önce deneme için değişkenlerimizi dolaşan uygulamamıza bir göz atalım.

Dün kodumuzu şu şekilde tamamlamıştık: day11_example4.go.

Manuel olarak challenge, daystotal ve dayscomplete değişkenlerimizi tanımladık.

Şimdi, TwitterName adında yeni bir değişken ekleyeceğiz. Kodun nasıl olduğunu day12_example1.go dosyasında görebilirsin ve bu kodu çalıştırırsak çıktımız şu şekildedir.

12.gününde olduğumuzda bu dayscomplete değerini her gün değiştirmemiz ve kodumuzu her gün derlememiz gerekecektir, eğer sabit bir değer olarak yazılırsa, bu pek cazip gelmeyebilir.

Bu yüzden, kullanıcının Twitter adını ve tamamlanan gün sayısını girerek değerleri programımızda elde etmek istiyoruz. Bunun için fmt paketinin başka bir giriş fonksiyonunu kullanabiliriz.

fmt paketi hakkında özetleyecek olursak, biçimlendirilmiş giriş/çıkış (I/O) için farklı işlevler:

  • Mesajları yazdırma
  • Kullanıcıdan girişi almak
  • Bir dosyaya yazmak

Bir değişkenin değerini programda atanması yerine, kullanıcıdan giriş olarak almak istiyoruz.

fmt.Scan(&TwitterName)

Değişkenin önünde & işaretini de kullandığımıza dikkat edin. Bu, bir işaretçi olarak adlandırılır ve bunu bir sonraki bölümde göreceğiz.

day12_example2.go dosyasındaki kodda, kullanıcıdan TwitterName ve DaysCompleted değişkenlerinde belirtilen bilgileri girmesini istiyoruz.

Şimdi programımızı çalıştıralım ve her iki değişkenin girişini aldığımızı göreceksiniz.

VHarika, kullanıcıdan bir giriş aldık ve aldığımız değerlerle bir mesajı yazdırdık. Ancak, meydan okumamızın kaç gün kaldığını programımızın söylemesini nasıl sağlarız?

Bunun için, remainingDays adında bir değişken oluşturacağız ve buna "90" integer değerini atayacağız. Ardından, "tamamlanan günler" girişini aldığımızda kalan günleri yazdırmak için bu değeri değiştirmemiz gerekiyor, yani bir çıkarma işlemi yapmamız gerekiyor.

remainingDays = remainingDays - DaysCompleted

Tamamlanan programın görünümünü day12_example3.go dosyasında görebilirsiniz.

Şimdi bu programı çalıştırırsanız, kullanıcının girişi ve remainingDays değişkeninin değeri temel alınarak basit bir hesaplama yapıldığını görebilirsiniz.

İşaretçi Nedir? (Özel Değişkenler)

Bir işaretçi, başka bir değişkenin bellek adresine işaret eden (özel) bir değişkendir.

Daha detaylı bir açıklamayı geeksforgeeks adresinde bulabilirsin.

Şimdi, kodumuzu basitleştirelim ve bir yazdırma komutumuzun önüne & işaretini ekleyerek, işaretçinin bellek adresini elde edelim. Örnek kodu day12_example4.go dosyasında bulabilirsin.

Bu kodu çalıştırarak sonucu gözlemleyelim.

Kaynaklar

Gorusmek Uzere Gun 13.