Swift中常量和變量的區(qū)別與聲明詳解
Swift是弱類型語言嗎?
答案是否定的,Swift 是強(qiáng)類型語言,下面上一個栗子
上面代碼中報錯了,報的是不能指定 Int 類型為 String 類型。
這里要注意一下在 Swift 中的整形是I,而字符類型首字母是S,都是大寫字母
在 Swift 中我們可以直接聲明 var 類型變量,可以不直接指定其類型,這是Swift語言的一種機(jī)制,當(dāng)我們聲明一個變量的初始值后,就已經(jīng)確定這個變量是什么類型,Type Inference (類型推斷)
如何查看一個變量的類型
在開發(fā)中我們一般如何查看一個變量的類型呢?我們只需要在鍵盤上點(diǎn)擊 option 鍵鼠標(biāo)點(diǎn)擊在變量名上會顯示其具體類型(鼠標(biāo)會變成問好),如下圖所示
Swift中常量和變量的聲明
常量是在程序運(yùn)行過程中,不會被修改的量。也就是說,常量一經(jīng)賦值,就不能再次賦值了。
變量是在程序運(yùn)行過程中,可以被多次賦值的量。也就是說,常量即使已經(jīng)賦值,還可以再次賦值。
在C語言中,如果我們要聲明常量,需要在類型前面加上const。例如,聲明一個值為10的整型常量i的語句如下:
const int i = 10;
在Swift中,我們使用let來聲明常量,使用var來聲明變量。例如,同樣是聲明一個值為10的整型常量i的語句如下:
let i: Int = 10
聲明一個值為20的整型變量j的語句如下:
var j: Int = 20
常量或變量的類型必須和你賦給它們的值保持一致。但是,你可以不用明確地聲明類型,如果在聲明的同時賦值的話,編譯器會自動推斷類型。例如,我們編寫出如下的語句:
var k = 30 let str = "Hello!"
根據(jù)所賦的值,編譯器會自動推斷出k為整型,str為字符串(String)類型。
如果所賦的初始值沒有提供足夠的信息,甚至是沒有初始值,那就需要在變量后面指明類型,用冒號分隔。
Swift同樣支持值類型之間的轉(zhuǎn)換,但Swift中的值永遠(yuǎn)不會被隱式轉(zhuǎn)換為其他類型。如果需要把一個值轉(zhuǎn)換成其他類型,需要使用顯式轉(zhuǎn)換。如下語句所示:
let desc = "My age is " let age = 30 let info = desc + String(age)
上面的語句聲明了desc為String類型,age為整型,而info也為整型。通過顯式類型轉(zhuǎn)換,info的值為“My age is 30”。
在Swift中,有一種把整型值轉(zhuǎn)換成字符串的方法簡單方法:把整型值寫到括號中,并且在括號之前寫一個反斜杠\。如下代碼所示:
let japanese = 2 let russian = 3 let japanesedesc = "There are \(japanese) japaneses." let foreignerdesc = "There are \(Japanese+ russian) foreigners."
在以上代碼中,japanesedesc的值為“There are 2 japaneses.”,foreignerdesc的值為“There are 5 foreigners.”
最后,我們編寫下面的程序來鞏固在Swift中對常量和變量的聲明:
let name = "zzx" let desc = "My name is " let namedesc = desc + name print(namedesc) let age = 30 var futureage = 0 futureage = age + 5 let info = "After 5 years, my age is \(futureage)." print(info)
程序運(yùn)行結(jié)果為:
My name is zzx After 5 years, my age is 35.
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
swift 3.0 正則表達(dá)式查找/替換字符的實(shí)現(xiàn)代碼
正則表達(dá)式使用單個字符串來描述、匹配一系列符合某個句法規(guī)則的字符串。本文重點(diǎn)給大家介紹swift 3.0 正則表達(dá)式查找/替換字符的實(shí)現(xiàn)代碼,需要的朋友參考下吧2017-08-08swift版webview加載網(wǎng)頁進(jìn)度條效果
這篇文章主要為大家詳細(xì)介紹了swift實(shí)現(xiàn)webview加載網(wǎng)頁進(jìn)度條效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-11-11swift 3.0中實(shí)現(xiàn)字符串截取、比較的方法示例
時,為了使用現(xiàn)有的字符串生成一個新的字符串,我們可以使用截取字符串的方法實(shí)現(xiàn)。下面這篇文章主要給大家介紹了關(guān)于swift 3.0中實(shí)現(xiàn)字符串截取的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒。2017-10-10