16 Aralık 2016 Cuma

TIP DÖNÜŞÜMLERİ

Bir örnek üzerinden gidecek olursak , aşağıdaki gibi iki değişenimiz olsun . Bunlardan biri isim bilgisini saklayacak diğeri kişinin yaş bilgisini saklayacak.  Bu iki veriyi metinsel olarak toplama işlemine yani birleştirme işlemine tabi tutalım. Aşağıda gördüğümüz gibi her iki veriyi de string olarak tanımladığımızda istediğimiz sonuca ulaşıyoruz. Fakat yaş bilgisini  string bir değişken içinde saklamak mantıklı bir yol değildir. Yaş bilgisini ınt tipindeki bir değişkende sakladığımızda ise yaş  bilgisi string olduğundan toplama işleminde hata meydana gelmektedir.

ÖRNEK: 

var isim:String= "Kardelen"
var yas:Int=16
isim + yas + "yaşındadır" // HATA




var isim:String ="Kardelen"              
var yas:Int =16                                                       "Kardelen"    
isim+yas+"yaşındadır"                16




Bu sorunu ortadan kaldırmak için yas bilgisini string ' e çevirerek yazdırmak gerekmektedir.  Bunu sağlayan kod ise description metodudur.


var isim :String "Kardelen"
var yas = 16
isim+yas.desciption + " yaşındadır "


var isim:String = "Kardelen"                                   "Kardelen"
var yas:Int=16                                                          16
isim+yas.description+ "yaşındadır"                         "Kardelen 16 yaşındadır "


yas2.description ile yas2 değişkenini string ' e çevirerek yazdırmış olduk. Burada yas2 değişkeninin aslı değişmemektedir.
Aslında bir çok tip dönüştürme işlemi bulunmaktadır . Fakat temel dönüştürme işlemlerini öğrenmemiz yeterli olacaktır.

  Başka bir tip dönüştürme işlemi ise strin içindeki bir sayıyı matematiksel işleme tabi tutmak için kullanılmaktadır.

var sayi:String="5"
sayi+4 // HATA

sayi isimli string tipindeki değişken içinde 5 değeri saklanmaktadır.  Değişken türü string olduğundan 5 değerini matematiksel işlemde kullanmak istersek yukarıdaki gibi bir hatayla karşılaşırız.  Böyle bir hatayla karşılaşmamak için sayi  değişkenini sayısal bir tipe dönüştürmeliyiz. Int (sayi)  ile  sayi değişkenini  bir Int türünde  ifadeymiş gibi  matematiksel işleme tabi tutabiliriz. Eğer sayi değişkeninin içinde 5 ifadesinin yanı sıra rakam olmayan bir ifade olsaydı yine hatayla karşılaşacaktık.

var sayi:String="5"
Int (sayi)!+4

NOT:  Yukarıdaki Int sayi (sayi) ifadesinin sonundaki ünlem (!) işareti bu değerin nil yani boş olmayacağını anlatmaktadır.


Tip dönüşümü sadece int ve string ifadeleri arasında olmamaktadır . Ondalık sayi tipindeki bir değişkenle  tam sayı tipindeki bir değişken için de tip dönüşümleri önem arz etmektedir.


var sayi1:Float =13.5
var sayi2:Int=4
print(sayi1 * sayi2)

Float tipteki bir sayı ile int tipindeki bir sayıyı çarpma işlemine tabi tutmak istediğimizde  aşağıda ki örnekte gördüğünüz hatayla karşılaşıyoruz.

var sayi1:Float =13.5
var sayi2:Int =4
print (sayi1 *sayi2 )   (hatalı kısımdır)


Bu hatadan kurtulup istediğimiz sonuca varmak için sayi1 veya sayi2 değişkeninin tipini değer değişkeninin tipiyle aynı yapmalıyız.
Şuna dikkat etmeliyiz ki eğer sayi1 değişkenin tipini değiştirip tam sayı bir tip yaparsak veri kaybı ile karşılaşırız. Bunun sebebi ondalıklı bir sayı olması ve tam sayı tipine çevirdiğimizde aşağıda göreceğiniz üzere  sayının ondalıklı kısmı silinir ve geriye tam sayı kısmı kalır.


print(Int(sayi1))
/*Sonuç
13

*/

 Aşağıdaki kod satırında sadece sayi2 üzerinde tip dönüşümü yapmış olduk.

print(sayi1 * Float (sayi2))
/*Sonuç
54.0
*/

 Yukarıdaki örnekte eğer sayi2 yerine sayi1 değişkeninin tipini değiştirseydik sonuç aşağıdaki gibi olacaktı ve sonuca dikkat ederseniz veri kaybı yaşamış olacaktık .

print (Int(sayi1) *  sayi2 )
/* Sonuç
52
*/


SABİT TANIMLAMA

Bir değişkene atadığımız değeri sonraki satırlarda istediğimiz kadar değiştirebiliriz.  Bazı durumlarda ise tanımladığımız değişkene sadece bir defa değer ataması  yapılmasını ve daha sonra atanan bu değerin değiştirilmemesini isteyebiliriz.  Örnek olarak pi sayısı verilebilir. Bu tip durumlarda değişken yerine sabit tanımlamalıyız.
Sabit tanımlamanın değişken tanımlamaya göre sadece 1 farkı bulunmaktadır. Bu farkta var ifadesi yerine let ifadesinin kullanılmasıdır.

Tanımlama Şekli :

let değum_tarihi:Int=1991

NOT :
Bu konu hakkında şunu da bilmeliyiz ; Tanımladığımız sabit ister sayısal olsun ister metinsel ,bu sabitin değerini değiştirmeye yeltenecek herhangi bir işleme tabi tutamayız.   

       

Hiç yorum yok:

Yorum Gönder

Not: Yalnızca bu blogun üyesi yorum gönderebilir.