在學習 Swift 編程語言的時候可能不會遇到這個東西,但是隨著學習的深入,在你閱讀他人的代碼的時候,很可能你就會遇到這種NS類型,這時候你肯定會好奇,類似 String 和 的NSString 到底哪裡不同?似乎它們是完全一樣的呀!而且,通過 as 這個關鍵字,我們也可以輕鬆的讓數據在它們兩者之間轉換。
要說清楚NS類型,我們還得從當年的 NeXTSTEP 操作系統說起了:
NeXT 為了寫這個操作系統,發明了 Objective-C。直到現在,蘋果的所有操作系統和應用軟件都是用這個語言編寫。而且,為了方便開發者,還有了Cocoa框架。
我們都知道,OC 並不是一門獨立的語言,它來自於 C 語言,就像是 C 語言的一個超集。所以它沒有類似C++的命名空間,要避免衝突,那麼就需要獨一無二的前綴用來區別了,再加上比如說C語言是沒有 String 這種類型的,那麼自然而然就有了 NSString 這一類的類型名稱了。
至於為什麼是 NS
這就不得而知了,總之一直使用這個前綴就成了歷史遺留問題,你可以在這個頁面看到各種已知前綴。
而如今Swift要兼容OC,那自然就會兼容這些類型,你可以使用 Swift 的 String 類型,同樣也可以使用 OC 的 NSString 類型——有時候後者有一些前者不具備的方法供你使用(比如說將字符串轉為數字。)
延伸閱讀
本文由 落格博客 原創撰寫:落格博客 » NSString 和 String 究竟 有什麼區別 ?
轉載請保留出處和原文鏈接:https://www.logcg.com/archives/1054.html
註釋