As? ile is kullanımı
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