Go Dönüşümler

Program yazmaya başladıktan bir süre sonra bir bakarsınız integer bir değeri ekrana basmak için string’e dönüştürmek yada json’dan aldığınız string bir değeri integer’a dönüştürmek zorunda kalabilirsiniz.

Bu ve benzeri convert işlemleri bir dil’e hakimiyet’in başlangıcıdır diyebiliriz.

Şimdi burada bütün kombinasyonları uygulamaya çalışıcam. Olurda unuttuğum olursa seslenirseniz sevinirim.

Öncelikle dönüşümlere geçmeden değişkenin hangi tipte olduğunu bize gösteren reflect paketini bilelim ki arada lazım olur.

Çıktısı :

olacaktır.

 

Gelelim ;

a ve b iki değeri toplamaya. Yer mi ? yemez…

Çünkü biz biliyoruz ki a integer bir değer iken b string bir değerdir. Böyle durumlar için bize döneceği hata

eşleşmeyen tipler.

Bunun için string’i integer’a dönüştürmemiz gerekiyor.

String’i Integer’a dönüştürme

Şimdi bu kod’un çıktısı :

olacaktır.

İşte burada öğreniyoruz ki dönüştürmek için strconv paketini kullanmamız gerekiyor.

İhtiyacımız olan ilaç buradaymış.

Şimdi diğer dönüşümlere girmeden hemen strconv.Atoi fonksiyonuna bakalım. Biliyoruz ki; Go Open source bir dil ve açıp bakabilmek gibi bir özgürlüğümüz var.

Bu kod ile Ato ile string bir değer girdiğimizde bize int ve err return ettiğini görebiliyoruz.

zaten kendi kodumuzda k ve _ kullandık. Buradaki alt tire error’a eşit geliyor ve onu şimdilik görmezden geliyoruz demek.

Bu dönüşümün bir diğer versiyonu ise integer değeri string’e çevirmek.

Integer değeri String’e dönüştürme

ve Çıktısı ;

Burada dikkatimizi çekmesi gerek function tabiki de Itoa.

Itoa’ nın da yaptığı bu…

Integer bir değeri alıp string olarak vermek.

Neden Atoi’de 2 değer retun olurken bunda tek değer return oldu ?

Cevap çok basit. String değer Integer’a dönüştürmek istediğimizde değer Integer’a dönüşebilecek tip temi.

Mesela “45” i integer’a dönüştürebiliriz ama “Merhaba” yı dönüştüremeyiz. Ola ki böyle bir değeri Atoi’ye gönderdiniz.

Çıktısı

olacaktır. Çünkü err ‘u gözlemedik. Gözlersek ;

Alacağımız cevap ;

geçersiz sözdizimi diye size bas bas bağırır. İşte oradaki err bunun için 🙂

 

 

alierbey | 06/09/2017

Leave a Reply