簡介
Swift 是一種用于iOS邓深、macOS浓冒、watchOS和tvOS應(yīng)用程序開發(fā)的新編程語言。盡管是新的語言所森,它還是有許多部分和C及OC非常的相似囱持。
C和OC所有基本類型,在swift中都有自己的版本焕济。包括整數(shù)的Int纷妆,浮點(diǎn)值的Double和Float,布爾值的Bool吼蚁,文本數(shù)據(jù)的String,它還提供了三種非常強(qiáng)大主要集合類型(Array问欠、Set和Dictionary)- Collection Types肝匆。
與C一樣,Swift使用變量通過標(biāo)識(shí)名存儲(chǔ)和引用值顺献。Swift還大量使用了值不可更改的變量旗国,這些被稱為常量,比C中的常量強(qiáng)大得多注整。在Swift中使用常量是為了在處理不需要更改的值時(shí)使代碼更安全能曾、更清晰。
除了熟悉的類型肿轨,swift還介紹了未在OC中使用的高級(jí)類型寿冕,例如元組(tuples),元組允許你創(chuàng)建和傳遞一組數(shù)據(jù)椒袍。你可以使用元組將方法中的多個(gè)值作為單個(gè)復(fù)合值返回驼唱。
Swift還引入了可選類型(Optionals type),用于處理缺少值的情況驹暑。Optionals表示“有一個(gè)值玫恳,它等于x”或“根本沒有值”。使用Optionals优俘,類似于OC的某個(gè)指針=nil京办,但是swift中 optionals可以用于任何類型,而不僅僅是classes帆焕。它們是swift許多最強(qiáng)大功能的核心惭婿。
Swift是一種類型安全的語言,這意味著swift可以幫助你明確代碼可以使用的值的類型。如果部分代碼需要String审孽,類型安全性會(huì)防止你錯(cuò)誤地傳遞Int县袱,同樣,類型安全防止您意外地將可選字符串傳遞給需要非可選字符串佑力。類型安全性幫助您在開發(fā)過程中盡早捕獲并修復(fù)錯(cuò)誤式散。
常量與變量
常量和變量將名稱(如maximumNumberOfLoginAttents或welcomeMessage)與特定類型的值(如數(shù)字10或字符串“Hello”)相關(guān)聯(lián)。常量的值一旦設(shè)置就不能更改打颤,而變量將來可以設(shè)置為不同的值暴拄。
常量和變量的聲明
常量和變量必須在使用前聲明,聲明常量和變量時(shí)分別使用關(guān)鍵字 let和var编饺。
//聲明一個(gè)常量乖篷,并賦值為10,以后的值不能更改
let maximumNumberOfLoginAttents = 10
//聲明一個(gè)變量透且,并賦值為0撕蔼,值可以更改
var currentLoginAttempt = 0
//還可以在一行當(dāng)中聲明多個(gè)常量或者變量,中間用逗號(hào)隔開
var x=0.0,y=0.0,z=0.0
如果x的值后續(xù)不需要改變則應(yīng)該使用關(guān)鍵字 ‘let’ 來替換 ‘var’*
類型注解
可以在聲明常量或變量時(shí)提供類型批注秽誊,用以明確常量或變量可以存儲(chǔ)的值的類型鲸沮。
//聲明一個(gè)String 類型的變量 welcomeMessage
var welcomeMessage: String
//賦值
welcomeMessage = "Hello"
//一次聲明多個(gè)變量
var red, green, blue: Double
實(shí)際開發(fā)中很少需要類型注解,swift可以推斷出已經(jīng)初始化的常量或變量的類型锅论。
常量和變量的聲明
其名稱可以包含任何字符:
let 你好 = "hello word”
let ???? = “cowdog”
常量及變量名稱不能包含空格讼溺、數(shù)學(xué)符號(hào)、箭頭最易、專用的Unicode怒坯、線條、框型圖等藻懒。
常量及變量名稱也不能以數(shù)字開頭剔猿。
常量一旦賦值,不允許再修改嬉荆。
let languageName = "Swift"
languageName = "Swift ++ "
//This is a compile-time error: languageName cannot be changed
//編譯時(shí)錯(cuò)誤艳馒,常量languageName值不能被改變
注意:
常量與變量名稱聲明時(shí) 盡量盡量 不要 與 swift 關(guān)鍵字相同。(必須的請(qǐng)?jiān)谧兞棵麅啥思?`)
打印常量及變量
使用函數(shù) print(_:separator:terminator:)
print(welcomeMessage)
print函數(shù)是全局函數(shù)员寇,可以將一個(gè)或多個(gè)值打印輸出弄慰。在Xcode中,print函數(shù)會(huì)再控制臺(tái)窗口中將值打印輸出蝶锋。separator陆爽,terminator 參數(shù)都有其默認(rèn)值,所以在使用print的函數(shù)時(shí)扳缕,可以將其忽略慌闭。
Swift使用字符串穿插的方式將常量或變量的名稱作為占位符 包含在較長的字符串中别威,提示Swift見其替換為常量或變量的當(dāng)前值,其格式如下:
let friendlyWelcome = "hello world!"
print("The current value of friendlyWelcome is \(friendlyWelcome)")
//prints: The current value of friendlyWelcome is hello world!
注釋
在代碼中使用注釋驴剔,作為對(duì)自己的提醒省古,在代碼編譯時(shí) 將忽略 這些注釋。
注釋的格式
// This is a comment . 這是注釋,為單行注釋
/* This is also acomment ,but is written over multiple lines.
此為多行注釋丧失,以(/*)開頭豺妓,以(*/)結(jié)尾,
*/
print("hello world")
分號(hào)
Swift 不需要再每行代碼結(jié)尾寫分號(hào)(“;”)布讹。但是琳拭,一行當(dāng)中有多個(gè)單獨(dú)的語句,則需要 分號(hào)間隔開描验。
let cat = "??";print(cate)
//prints "??"
這一章有點(diǎn)多白嘁,不怕浪費(fèi)紙張,下一章接上膘流。