Photo by AltumCode / Unsplash

As? ile is kullanımı

Swift Feb 24, 2023

Swift dilinde as? ve is operatörleri, tür dönüşümleri yapmak için kullanılır. Aşağıdaki kod parçasında, someObject adlı bir Any tipinde bir değişken tanımladık ve bu değişkene bir dize değeri atadık. Daha sonra if let bloğu içinde as? operatörünü kullanarak someObject değişkeninin bir String tipinde olup olmadığını kontrol ettik. Eğer bir String tipindeyse, bu değişkeni string adlı bir değişkene atayarak yazdırdık.

Aynı kod bloğunun bir sonraki satırında ise is operatörünü kullanarak someObject değişkeninin bir String tipinde olup olmadığını kontrol ettik. Bu operatörün özelliği, sadece doğru ya da yanlış değer döndürmesidir. Eğer değişken bir String tipindeyse true, değilse false değeri döndürür.

let someObject: Any = "foo"

if let string = someObject as? String {
    print("It's a string: \(string)")
}

if someObject is String {
    print("It's definitely a string")
}

Şimdi as? ve is operatörlerinin nasıl kullanılacağını anladık. Peki hangisi hangi durumlarda daha uygun?

  • Eğer bir değişkenin bir belirli türe dönüştürülmesini istiyorsanız ve dönüştürme başarısız olursa nil değeri almak istiyorsanız, as? operatörünü kullanabilirsiniz. Örneğin:
let someObject: Any = "foo"
let string = someObject as? String
print(string)  // Optional("foo")

  • Eğer bir değişkenin belirli bir türe ait olup olmadığını kontrol etmek istiyorsanız, is operatörünü kullanabilirsiniz. Örneğin:
let someObject: Any = "foo"
let isString = someObject is String
print(isString)  // true

Tags

Furkan Ozoglu

iOS Developer & Geomatics Engineer