Swift是弱類型語言嗎?
答案是否定的,Swift 是強類型語言,下面上一個栗子
上面代碼中報錯了,報的是不能指定 Int 類型為 String 類型。
這里要注意一下在 Swift 中的整形是I,而字符類型首字母是S,都是大寫字母
在 Swift 中我們可以直接聲明 var 類型變量,可以不直接指定其類型,這是Swift語言的一種機制,當我們聲明一個變量的初始值后,就已經(jīng)確定這個變量是什么類型,Type Inference (類型推斷)
如何查看一個變量的類型
在開發(fā)中我們一般如何查看一個變量的類型呢?我們只需要在鍵盤上點擊 option 鍵鼠標點擊在變量名上會顯示其具體類型(鼠標會變成問好),如下圖所示
Swift中常量和變量的聲明
常量是在程序運行過程中,不會被修改的量。也就是說,常量一經(jīng)賦值,就不能再次賦值了。
變量是在程序運行過程中,可以被多次賦值的量。也就是說,常量即使已經(jīng)賦值,還可以再次賦值。
在C語言中,如果我們要聲明常量,需要在類型前面加上const。例如,聲明一個值為10的整型常量i的語句如下:
1
|
const int i = 10; |
在Swift中,我們使用let來聲明常量,使用var來聲明變量。例如,同樣是聲明一個值為10的整型常量i的語句如下:
1
|
let i: Int = 10 |
聲明一個值為20的整型變量j的語句如下:
1
|
var j: Int = 20 |
常量或變量的類型必須和你賦給它們的值保持一致。但是,你可以不用明確地聲明類型,如果在聲明的同時賦值的話,編譯器會自動推斷類型。例如,我們編寫出如下的語句:
1
2
|
var k = 30 let str = "Hello!" |
根據(jù)所賦的值,編譯器會自動推斷出k為整型,str為字符串(String)類型。
如果所賦的初始值沒有提供足夠的信息,甚至是沒有初始值,那就需要在變量后面指明類型,用冒號分隔。
Swift同樣支持值類型之間的轉換,但Swift中的值永遠不會被隱式轉換為其他類型。如果需要把一個值轉換成其他類型,需要使用顯式轉換。如下語句所示:
1
2
3
|
let desc = "My age is " let age = 30 let info = desc + String(age) |
上面的語句聲明了desc為String類型,age為整型,而info也為整型。通過顯式類型轉換,info的值為“My age is 30”。
在Swift中,有一種把整型值轉換成字符串的方法簡單方法:把整型值寫到括號中,并且在括號之前寫一個反斜杠\。如下代碼所示:
1
2
3
4
|
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中對常量和變量的聲明:
1
2
3
4
5
6
7
8
9
10
|
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) |
程序運行結果為:
1
2
|
My name is zzx After 5 years, my age is 35. |
總結
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對服務器之家的支持。
原文鏈接:http://blog.csdn.net/zhouzhaoxiong1227/article/details/52937962