Swift3 0 基礎知識

2022-08-02 20:39:11 字數 2574 閱讀 9792

本文對swift做乙個從oc的角度的基礎知識簡單概要。

swift

oc說明

let、var

const

在oc中不用const宣告的常量,都認為是變數

float、double

cgfloat

intnsinteger

string

nsstring

bool

bool

oc中的非1為flase,1為ture在swift中不適用

array

nsarray

dictionary

nsdictionary

setnsset

tuple

-optional

-nil

nilswift中的nil和oc中的含義不一樣

if語句

if語句

if語句的語法寫作不一樣,尤其是swift中if巢狀簡寫

try..throw

-oc中沒有採用拋異常處理機制

assert

nsassert

以下的概念,先要有個印象:

1、宣告常量用let、宣告變數用var

·常量的值一旦設定就不能改變,而變數的值可以隨意更改

let a = 10

var b = "hello, world!"

2、型別標註

·通過上面的例子可以看出,宣告常量和變數的時候,可以不標註常量或者變數的型別,這是因為swift的「型別安全和型別推斷」功能,可以通過宣告常量或者變數的時候賦的初始值推斷出這個常量或者變數的型別。

·如果沒有賦初始值又想表明該常量或者變數的型別,就的用「: 型別名」的方式標註型別

var welcommessage : string

3、常量和變數的命名

·命名方面跟oc一樣

4、輸出常量和變數

·oc語言上使用的是nslog,swift使用print(_:separator:terminator:)函式

print(welcomemessage)

·這個輸出函式預設結尾換行,如果不想換行,將空字串作為terminator的引數傳入即可

print(welcomemessage, terminator:"")

·輸出時的拼接採用將常量或者變數放入圓括號中,並在做括號前使用反斜槓將其轉義的方式

print("please speak \(welcomemessage)")

5、注釋

·採用跟oc一樣的方式

6、分號

·與oc不一樣,swift不強制使用分號

·如果打算在同一行內寫多條獨立的語句,那就要使用分號

7、整數與浮點數

·oc使用的nsinteger,swift使用int

·oc使用的nsuinteger,swift使用uint

·oc使用的cgfloat,swift使用double(64位浮點數)、float(32位浮點數)

8、型別安全和型別推斷

·進行型別檢查是在編譯時期

·浮點型推斷成double而不是float

·型別安全到int數值無法跟double數值直接相加的地步,此時需要使用「數值型型別轉換」

9、數值型字面量

·整數字面量:十進位制、二進位制、八進位制、十六進製制

·浮點字面量:十進位制、十六進製制 

10、數值型型別轉換

·數值型一般使用int

·int8和int16之間不能直接進行計算,需要採用int16(int8的數值)進行轉換

·整數和浮點數不能直接進行計算,需要採用類似於double(int的數值)進行轉換

11、型別別名,使用typealias關鍵字

typealias audiosample = uint16

12、布林值

·swift採用的是bool(包括ture和false)

·與oc中的bool不一樣的是,oc中1代表ture,非1代表false。但是在swift中的型別安全機制下1不能代表ture

let i = 1

if i else catch sandwicherror.outofcleandishes catch sandwicherror.missingingredients(let ingredients) {

buygroceries(ingredients)

19、斷言

·在oc中也是有斷言(使用的是nsassert),swift中使用assert

·當條件可能為假時使用斷言,但是最終一定要保證條件為真,這樣你的**才能繼續執行。斷言的適用情景:

·整數型別的下標索引被傳入乙個自定義下標實現,但是下標索引值kennel太小或者太大

·需要給函式傳入乙個值,但是非法的值可能導致函式不能正常執行

·乙個可選值現在是nil,但是後面的**執行需要乙個非nil值

swift3 0 陣列的相關知識

對於swift3.0陣列的一些語法發生了簡單的改變,但是總體來說跟之前還是一樣的 func demo1 1.簡單的陣列使用 陣列使用,跟c語言一樣,但是他可以放任意型別的元素,可以自行判斷陣列的型別 let array any?一號 2,uiview 但是需要轉換表示陣列的型別為any print ...

Swift 3 0基礎學習之下標

前言 類,結構體和列舉都可以定義下標,使用下標可以快速訪問集合,列表或者序列的資料成員元素。可以使用somearray index 來訪問array,使用somedictionary key 來訪問dictionary。乙個型別可以定義多個下標。定義乙個get set的下標 subscript in...

Swift3 0 建構函式

viewcontroller.swift import uikit 在swift中,同乙個專案中 同乙個命名空間 所有的類預設都是共享的,不需要引用,可以直接訪問,不需要import 所有物件的屬性 var,也可以直接訪問到 class viewcontroller uiviewcontroller...