Soru & Cevap

Swift tip dönüşümü ve optional yazısı ...

19.02.2016 - 04:06

Merhaba arkadaşlar,

Benim şöyle bir sorunum var;  double değişkenlerle işlemler yapıyorum ve en sonunda o değişkenlerin değerlerini yazdırmak istiyorum. Fakat yazdırmak istediğim değerlerin tam sayı olması gerekiyor. Yani değişken değeri 5.6 ise 6, 5.4 ise 5 yazdırmak istiyorum. bu değişkenin türünü ne yapıp int'e çevirebilirim?

Bir diğer sorum da; 

Bu değişkenleri ekrana yazdırdığımda sayının başında "Optional" yazıyor. Bu yazının  çıkma sebebi nedir? Nasıl yok edebilirim? 

Teşekkürler herksese, iyi çaloşmalar..

225 Görüntülenme

1 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

picture-10880-1499430298.png
halil.oncen
19.02.2016 - 04:34

Tip dönüşümleri Swift ile çok basit Double tipinden Int'e dönüşüm için, 

var doubleDeğer:Double = 5.4
var intDeğer:Int = Int(doubleDeğer)

aynı şekilde farklı tipteki dönüşümler içinde kullanılabilir. En yakın tam sayıya yuvarlama işlemini ise Swift'te round() fonksiyonu yapıyor. 

import Foundation 

var doubleDeğer:Double = 5.4

print(Int(round(doubleDeğer))) // Çıktı 5 olacaktır. 

Optinal kavramını ise şöyle bir örnekle açıklayalım, 

import Foundation

print("En sevdiğin fenomeni seç. \n 1) Tablet Reyiz \n 2) Köksal Baba \n 3) Songül")

var seçim:Int = Int(readLine()!)!

switch seçim {
case 1: print("Pohta çıkabilir :) Güvenmiyorumda..")
case 2: print("Baba büyüksün.")
case 3: print("Ne zaferinden bahsediyosun sen ya .s .s")
default: print("Hatalı Seçim.")
}

readLine ile klavyeden giriş aldığımız için gelen veri string tipinde oluyor ve bende 1 2 3 seçeneklerini kontrol ettirmek için integer'a çeviriyorum. Burda hoop Xcode devreye giriyor. "İyi güzel çevireceksin Int'e ama bak baba a,b,c gibi bir karakter gelmesin sonra programın çöker vallaha" deyip uyarıyor beni, bende baba sen rahat ol readLine'dan her türlü 1,2,3 gibi Int'e çevrilebilen değerler gelecek tüm sorumluluk bende deyip yapıştırıyorum ünlemi :) 

Eren Gündüz
19.02.2016 - 05:11
Bir sorunun cevabı ancak bu kadar güzel anlatılabilirdi heralde. Teşekkür ederim işim halloldu..