Swift基礎語法介紹

http://codecloud.net/swift-2-1181.html

1.常量和變量在使用前都需要聲明,在Swift中使用let關鍵詞來聲明一個常量,var關鍵詞聲明一個變量。如下面例子

let maximumNumberOfLoginAttempts = 10
var currentLoginAttempt = 0

以上代碼可以理解爲:

聲明一個叫maximumNumberOfLoginAttempts的值爲10的常量。然後聲明一個變量currentLoginAttempt初始值爲0。

在這個例子中,最大的登錄嘗試次數10是不變的,因此聲明爲常量。而已經登錄的嘗試次數是可變的,因此定義爲變量。

2.Swift使用println來輸出變量或者常量:

println(friendlyWelcome)
// prints “Bonjour!”

println是一個全局函數,用來輸出一個值,最後輸出一個換行。在Xcode中,println輸出在控制檯中。print函數也類似,只不過最後不會輸出換行。

3、和其它一些編程語言不同,Swift不需要使用分號 ; 來分隔每一個語句。當然你也可以選擇使用分號,或者你想在一行中書寫多個語句。

let cat = ""; println(cat)
// prints ""

4.Int類型

一般來說,編程人員在寫代碼時不需要選擇整數的位數,Swift提供了一種額外的整數類型Int,是和當前機器環境的字長相同的整數位數

在32位機器上,Int和Int32一樣大小
在64位機器上,Int和Int64一樣大小
除非你確實需要使用特定字長的正數,儘量使用Int類型。這保證了代碼的可移植性。即使在32位的平臺上,Int也可以存儲-2,147,483,648 到2,147,483,647範圍內的值,這對大部分正數來講已經足夠了。

UInt類型

Swift還提供了一種無符號類型UInt,同理也是和當前機器環境的字長相等。

在32位機器上,UInt和UInt32一樣大小
在64位機器上,UInt和UInt64一樣大小

5.整數轉換

可以存儲在一個整數常量或變量的範圍根據每個數值類型是不同的。一個Int8常量或變量可以存儲範圍-128到127之間的數,而一個UInt8常量或變量可以存儲0到255之間的數字。錯

let cannotBeNegative: UInt8 = -1
// UInt8 cannot store negative numbers, and so this will report an error
let tooBig: Int8 = Int8.max + 1
// Int8 cannot store a number larger thanits maximum value,
// and so this will also report an error

不同範圍的值,你必須在基礎數值類型上逐步做轉換。這種可以防止隱藏的轉換錯誤,並幫助明確你的代碼中類型轉換的意圖。

要轉換一個特定的數字類型到另一個,你需要定義一個所需類型的新變量,並用當前值初始化它。在下面的例子中,常量twoThousand是UInt16類型的,而常量one是UINT8類型的。它們不能被直接相加的,因爲類型不同。相反的,該​​示例調用UInt16(one)來創建一個用變量one的值初始化的UInt16類型

let twoThousand: UInt16 = 2_000
let one: UInt8 = 1
let twoThousandAndOne= twoThousand + UInt16(one)

以做加法運算了。輸出常量(twoThousandAndOne)被推斷爲UInt16類型的,因爲它是兩個UInt16的值的總和。

SomeType(ofInitialValue)是Swift默認的類型轉換方式。實現上看,UInt16的有一個接受UINT8值的構造器,這個構造器用於從現有UInt8構造出一個新的UInt16的變量。你不能傳入任意類型的參數,它必須是一個類型的UInt16初始化能接受的類型。如何擴展現有類型,規定接受新的類型(包括你自己的類型定義)可以參見 Extensions。

整數和浮點數轉換

整數和浮點類型

let three = 3
let pointOneFourOneFiveNine= 0.14159
let pi = Double(three) +pointOneFourOneFiveNine

用來創建Double類型的新變量,從而使表達式兩側是相同的類型。如果沒有這個轉換,加法操作不會被允許。反之亦然,一個整數類型可以用double或float值進行初始化:

let integerPi= Int(pi)
// integerPi equals 3, and is inferred tobe of type Int

當使用這種方式初始化一個新的整數值的時候,浮點值總是被截斷。這意味着,4.75變爲4,和-3.9變爲-3。

6.
if語句和強制解包

編程人員可以使用if語句來檢測一個可選類型是否包含一個特定的值,如果一個可選類型確實包含一個值,在if語句中它將返回true,否則返回false。如果你已經檢測確認該值存在,那麼可以使用或者輸出它,在輸出的時候只需要在名稱後面加上感嘆號(!)即可,意思是告訴編譯器:我已經檢測好這個值了,可以使用它了。如:

if convertedNumber {
println("(possibleNumber) has an integer value of (convertedNumber!)")
} else {
println("(possibleNumber) could not be converted to an integer")
}
// prints "123 has an integer value of 123"

7.
nil

可以給可選類型指定一個特殊的值nil:

var serverResponseCode: Int? = 404
// serverResponseCode contains an actual Int value of 404
serverResponseCode = nil
// serverResponseCode now contains no value

如果你定義了一個可選類型並且沒有給予初始值的時候,會默認設置爲nil

var surveyAnswer: String? // surveyAnswer is automatically set to nil

注: Swift 的nil不同於Object-C中的nil. Object-C中,nil是一個指針指向不存在的對象。Swift中,nil不是指針而是一個特定類型的空值。任何類型的可選變量都可以被設爲nil,不光是指針。

10: Swift語言教程(五)控制流
http://codecloud.net/swift-6-1193.html
Swift語言教程(六)函數
http://codecloud.net/swift-7-1195.html
Swift語言教程(七)閉包
http://codecloud.net/swift-8-1197.html
Swift語言教程(八) 枚舉類型
http://codecloud.net/swift-9-1199.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章