swift 基礎部分

2021-07-04 10:29:46 字數 3449 閱讀 9502

一、數值型字面量

整數字面量可以被寫作:

1、乙個十進位制數,沒有字首

2、乙個二進位制數,字首是0b

3、乙個八進位制數,字首是0o

4、乙個十六進製制數,字首是0x

let decimalinteger = 17

let binaryinteger = ob10001

let octalinteger = 0o21
let hexadecimalinteger = 0x11

浮點字面量可以是十進位制(沒有字首)或者是十六進製制(字首是0x)。小數點兩邊必須有至少乙個十進位制數(或者十六進製制的數字)。浮點字面量還有乙個可選的指數(exponent),在十進位制浮點數中通過大寫或小寫的e來指定,在十六進製制浮點數中通過大寫或者小寫的p來指定。

如果乙個十進位制數的指數為exp,那這個數相當於基數和¥10^$的乘積:

1.25e2表示$1.25x10^$,等於125.0

1.25e-2表示$1.25x10^$,等於0.0125

如果乙個十六進製制的指數為exp,那這個數相當於基數和$2^$的乘積:

0xfp2 表示 $15x2^$,等於60.0

0xfp-2 表示 $15x2^$,等於3.75

數值類字面量可以包括額外的格式來增強可讀性。整數額浮點數都可以新增額外的零並且包含下劃線,並不會影響字面量:

let paddeddouble = 000123.456

let onemillion = 1_000_000

let justoveronemillion = 1_000_000.000_000_1

二、數值型型別轉換

整數轉換

要將一種數字型別轉換成另一種,你要用當前值來初始化乙個期望型別的新數字,這個數字的型別就是你的目標型別。

常量twothousand是uint16型別,然而常量one是uint8型別。他們不能直接相加,因為他們型別不同。所以要呼叫uint16(one)來建立乙個新的uint16數字並用one的值來初始化,然後使用這個新數字來計算:

let twothousand: uint16 = 2_000

let one: uint8 = 1

let twothousandandone = twothousand + uint16(one)

整數和浮點數轉換

let three = 3

let pointonefouronefivenine = 0.14159

let pi = double(three) + pointonefouronefivenine

let integerpi = int(pi)
//integerpi 等於 3,所以被推測為int型別
當用這種方法來初始化乙個新的整數值時,浮點值會被截斷。也就是受4.75會變成4,-3.9會變成-3 。

string轉int

字串」123「可以被轉換成數字123,但是字串」hello,world「不行

下面的例子使用toint方法來嘗試講乙個string轉換成int:

let possiblenumber = "123"
let convertednumber = possiblenumber.toint()

型別別名

型別別名(type aliases)就是給現有型別定義另乙個名字。你可以使用typealias關鍵字來定義型別別名

typealias audiosample = uint16
var maxamplitudefound = audiosample.min

元組元組(tuples)把多個值組合成乙個復合值。元組內的值可以使任意型別,並不要求是相同型別。

(404,」not found「)是乙個描述http狀態碼(http status code) 的元組。http狀態碼是當你請求網頁的時候web伺服器返回的乙個特殊值。如果你請求的網頁不存在就會返回乙個404 not found 狀態碼。

let http404error = (404,"not found")
//http404error 的型別是(int,string),值是(404,"not found")

可以將乙個元組的內容分解(decompose)成單獨的常量和變數,然後你就可以正常使用他們了:

如果你只需要一部分元組值,分解的時候可以把要忽略的部分用下劃線(_)標記:

此外,你還可以通過下表來訪問元組的單個元素,下標從零開始:

可以在定義元祖的時候給單個元素命名:

可選 !和 ?

let possiblenumber = "123"
let convertednumber = possiblenumber.toint()
因為toint方法可能會失敗,所以它返回乙個可選的(optional)int,而不是乙個int。乙個可選的int被寫作int?而不是int。問好暗示包含的值是可選,也就是說可能包含int值也可能不包含值。(不能包含其他任何值比如bool或者string值。只能是int或者什麼都沒有)。

Swift基礎部分

swift是一種基於ios,os x和watchos平台的新的程式語言,2016.9已經更新到3.0版本,3.0版本基於前面2個版本做了許多改變 新增或變更或是替換 我是乙個從c c 過度到object c的程式猿,目前swift開發的ios程式漸漸多了起來,有幸可可以自學一下swift 3.0,所...

Swift4 0 基礎部分

翻譯能力有限,如有不對的地方,還請見諒!希望對swift的學習者有所幫助 swift是一門新的程式語言,用於ios,macos,watchos以及tvos系統平台上應用程式的開發。儘管如此,如果有c和objective c開發經驗的話,那麼對於swift的許多部分,你將並不陌生。c和objectiv...

swift 函式部分重要筆記

1.函式沒有返回值,會返回特殊的值,叫void.它其實是乙個空的元組,沒有任何元素,可以寫成 2.指定外部引數名,中間以空格分隔。func somefunc externaparametername localparametername int 3.忽略外部引數名,用下劃線 4.預設引數值,func...