Tür Dönüşümü
Coddy'nin Swift Journey'sinin Temeller bölümünün bir parçası — ders 34 / 86.
readLine() bir String? döndürdüğü için, hesaplamalar yapmak için genellikle bu dizeyi bir sayıya dönüştürmeniz gerekecektir. Swift açık tür dönüşümü gerektirir — bir dizeyi otomatik olarak bir tam sayıya veya double değerine dönüştürmez.
Bir dizeyi tam sayıya dönüştürmek için Int() başlatıcısını kullanın. Dönüştürme işlemi başarısız olabileceği için (dize rakamlar yerine harfler içerebilir), bir optional (isteğe bağlı) değer döndürür:
let input = "42"
if let number = Int(input) {
print(number + 10) // Çıktı: 52
}Ondalık sayılar için Double() kullanın:
let priceString = "19.99"
if let price = Double(priceString) {
print(price * 2) // Çıktı: 39.98
}Bu, readLine() fonksiyonunu sayısal işlemlerle birleştirirken özellikle yararlıdır. Açma (unwrapping) işlemini birbirine zincirleyebilirsiniz:
if let input = readLine(), let age = Int(input) {
print("Next year you'll be \(age + 1)")
}if let ifadesindeki virgül, her iki koşulun da başarılı olması gerektiği anlamına gelir — girdi mevcut olmalı ve bir tam sayıya dönüştürülebilir olmalıdır.
Görev
Kolayİki girdi okuyun: dize (string) olarak bir ondalık sayı ve dize olarak bir tam sayı. Bunları uygun sayısal türlerine dönüştürün ve çarpımlarını hesaplayın.
Aşağıdaki girdileri alacaksınız:
- Birinci satır: Bir ondalık sayı (örneğin,
"3.5") - İkinci satır: Bir tam sayı (örneğin,
"4")
Her iki girdiyi de okumak için readLine() kullanın. İlk girdiyi bir Double türüne ve ikinciyi bir Int türüne dönüştürün. Ardından bunları birbiriyle çarpın ve sonucu yazdırın.
Hem girdiyi hem de dönüştürülen değeri güvenli bir şekilde açmak (unwrap) için zincirleme isteğe bağlı bağlama (chained optional binding) ile if let kullanın.
Yazdırın: İki sayının çarpımını bir Double olarak
Kopya kağıdı
Swift, dizeler ve sayılar arasında açık tür dönüşümü (type conversion) gerektirir.
Bir dizeyi tam sayıya dönüştürmek için Int() kullanın. Dönüştürme işlemi başarısız olabileceği için bu bir "optional" döndürür:
let input = "42"
if let number = Int(input) {
print(number + 10) // Output: 52
}Bir dizeyi ondalıklı sayıya dönüştürmek için Double() kullanın:
let priceString = "19.99"
if let price = Double(priceString) {
print(price * 2) // Output: 39.98
}if let içinde virgül kullanarak readLine() ile "optional unwrapping" işlemini zincirleyebilirsiniz. Her iki koşulun da başarılı olması gerekir:
if let input = readLine(), let age = Int(input) {
print("Next year you'll be \(age + 1)")
}Kendin dene
// Ondalık sayıyı bir dize olarak oku
if let decimalString = readLine() {
// Tam sayıyı bir dize olarak oku
if let intString = readLine() {
// YAPILACAK: Kodunuzu aşağıya yazın
// if let kullanarak decimalString'i Double'a ve intString'i Int'e dönüştürün
// Ardından çarpımlarını hesaplayın ve yazdırın
}
}Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Temeller bölümündeki tüm dersler
4Operatörler Bölüm 1
Aritmetik OperatörlerModül OperatörüBileşik AtamaÖzet - Basit MatematikKarşılaştırma Operatörleri7Temel Giriş/Çıkış
Print FonksiyonuString InterpolationReadLine GirişiTür DönüşümüÖzet - 120'ye KadarÖzet - Doğru veya Yanlış10Fonksiyonlar
Fonksiyon TanımlamaParametreler ve ArgümanlarDönüş DeğerleriArgüman EtiketleriÖzet - Sigma FonksiyonuÖzet - Doğrulama FonksiyonuVarsayılan Değerler13Diziler Üzerinde Yineleme
Elemanlar Üzerinde YinelemeEnumerate MetoduStringler Üzerinde Yineleme P1Stringler Üzerinde Yineleme P22Değişkenler
Let vs VarTip BelirteçleriSayılarStringBooleanİsimlendirme KurallarıÖzet - Değişkenleri Başlatma5Operatörler Bölüm 2
Mantıksal Operatörler Bölüm 1Mantıksal Operatörler Bölüm 2Özet - Basit MantıkMantıksal Operatörler Bölüm 3Ternary Operatör8Hesap Paylaşım Hesaplayıcısı
Hoş Geldiniz MesajıGirdi Alma14İleri Seviye Diziler
Dizi Dilimleme Bölüm 1Dizi Dilimleme Bölüm 2Sıralı Yapı OperatörleriContains Metodu3Opsiyoneller
Opsiyoneller NedirIf Let ile UnwrappingGuard LetNil Coalescing OperatörüÖzet - Güvenli Unwrapping6Karar Yapıları
If İfadesiIf - ElseÖzet - Basit Hesap MakinesiSwitch İfadesiAralıklı Switch Kullanımı9Döngüler
For-In DöngüsüWhile DöngüsüRepeat-While DöngüsüBreakContinueÖzet - FaktöriyelDöngülerde Aralıklarİç İçe DöngülerÖzet - Dinamik Girdi