Aslında, hızlı bir şekilde nesnelerin daha az ve daha çok değer gibi davranılması için dizeleri teşvik etmeye çalışıyor gibi geliyor. Ancak bu, kaput swift'in altında dizeleri nesne olarak işlemediği anlamına gelmez, eminim hepiniz hala dizelerde yöntemleri çağırabileceğinizi ve özelliklerini kullanabileceğinizi fark ettiniz.
Örneğin:-
//example of calling method (String to Int conversion)
let intValue = ("12".toInt())
println("This is a intValue now \(intValue)")
//example of using properties (fetching uppercase value of string)
let caUpperValue = "ca".uppercaseString
println("This is the uppercase of ca \(caUpperValue)")
ObjectC'de, bir dize nesnesine başvuruyu, değişkenlerin üzerinden, çağrı yöntemlerinin üstünde, dizelerin saf nesneler olduğu gerçeğini hemen hemen belirleyen bir değişken aracılığıyla iletebilirsiniz.
Dize'ye nesne olarak bakmaya çalıştığınızda yakalamanız, hızlıca bir dize nesnesini bir değişken aracılığıyla referans olarak geçiremezsiniz. Swift her zaman dizenin yepyeni bir kopyasını geçirir. Bu nedenle, dizeler daha hızlı olarak değer türleri olarak bilinir. Aslında, iki dize değişmezi aynı olmaz (===). İki farklı kopya olarak ele alınırlar.
let curious = ("ca" === "ca")
println("This will be false.. and the answer is..\(curious)")
Gördüğünüz gibi, karakter dizilerini nesne olarak düşünme ve onlara daha çok değerler gibi davranma yolundan kopmaya başlıyoruz. Bu nedenle, dize nesneleri için kimlik operatörü olarak kabul edilen .isEqualToString, Swift'te asla iki özdeş dize nesnesi alamayacağınız için artık geçerli değildir. Yalnızca değerini karşılaştırabilir veya başka bir deyişle eşitliği kontrol edebilirsiniz (==).
let NotSoCuriousAnyMore = ("ca" == "ca")
println("This will be true.. and the answer is..\(NotSoCuriousAnyMore)")
Hızlı bir şekilde dize nesnelerinin değişebilirliğine baktığınızda bu daha ilginç hale gelir. Ama bu başka bir soru için, başka bir gün. Muhtemelen bakmanız gereken bir şey, çünkü gerçekten ilginç. :) Bu biraz karışıklık giderir umarım. Şerefe!
===
kimlik operatörleriyken==
eşitlik operatörüdür (varsayılanisEqual:
olarak NSObject ve alt sınıflarına çağrıda bulunur)