Swift開發教程 Swift的基本語法

2021-07-03 14:59:43 字數 4920 閱讀 2908

下面來介紹swift的基本用法:

println("hello, world!")

println("你好,世界!")

// 定義乙個常量,使用關鍵字「let」

// 在swift中,幾乎對所有的基本資料型別或者是物件型別使用結構體進行了重寫

let haidian = "海淀"

// let haidian: string = "海淀"        // 在swift中,系統會幫你做型別推斷,上一行的**和此行一樣

// \(變數名)把變數或者常量名轉化為字串進行輸出

println("haidian = \(haidian)") // "\(變數/常量名)" 可以把變數/常量轉化為字串輸出

//直接輸出

println(haidian)

// 定義乙個變數,使用關鍵字「var」

var hello = "你好,"

hello = hello + haidian     // 字串過載:字串拼接

println("hello  = \(hello)")

// swift幾乎支援所有的unicode編碼的字元(除了數學中的符號、箭頭和橫線)來對變數/常量進行命名

let 狗 = "dog,"

println(狗)

var  = 狗 + "愛你"

println()

// 定義乙個整型 (型別推斷)

var a = 10  // 定義乙個整型,其實這個語句,編譯器會幫我們推斷為:var a: int = 10,格式為:「變數/常量名: 型別」,在swift中整型是int,如果系統是32位,那麼這個變數就是int32,如果系統是64位,那麼就是int64,如果我定義乙個8位的整型樹,那麼需要顯式的指定為int8:

var b: int8 = 12        // 顯式指定int的位數

var c = 12.0            // 在swift中,浮點型資料預設是double

var d = double(b) + c   // 在swift中,不支援隱式轉換,如果想把兩個不同型別的資料進行操作,那麼需要顯式的轉換其型別,轉換格式為:「型別名(常量/變數名)」

// 元組,元組借鑑了關係型資料庫裡面的概念,關係型資料庫裡面的一條資料就是乙個元組,元組中可以存放不同型別的資料,和結構體類似,但是結構體需要先進行宣告,元組可以直接建立使用

// 定義乙個元組

let errorcode = (404, "not fount")          // 這是乙個(int, string)型別的元組,相當於:let errorcode: (int, string) = (404, "not fount")

// 元素分解(取出元組中的元素)

// 取出元組裡面的元素(通過下標取出)

println("errorcode = \(errorcode.0), errormessage = \(errorcode.1)")

// 可以在建立元組的時候,給元組裡面的元素宣告型別名稱

let errorcodea = (errorcode: 404, errormessage: "not found")

// 通過型別名稱取出元素

println("errorcode = \(errorcodea.errorcode), errormessage = \(errorcodea.errormessage)")

println(errorcodea)

// 如果忽略元組對應位置的元素,那麼可以使用「_」

let (statuscode, _) = errorcodea

println("statuscode = \(statuscode)")

// 陣列:在swift陣列中,只能存放同一型別的資料,這樣才能對陣列進行訪問操作。如果資料型別不是相同的,則會轉換為nsarray來處理

// 使用var來宣告乙個可變陣列,

var namearraya = ["張三", "李四", "王五"]       // 相當於:var namearraya: string = ["張三", "李四", "王五", "趙六"]

println("namearraya = \(namearraya)")

// 定義乙個空的陣列

var somevalues = [int]()        // 宣告了乙個空的陣列,陣列裡面的元素都是int,在xcode6 beta4之前得版本,寫法是:int()

var namearrayc = ["hello", 123]

// 往陣列中新增元素

println("namearraya = \(namearraya)")

// 替換陣列裡面的元素

namearraya[0] = "第乙個"

println(namearraya)

// 刪除陣列裡面的元素

namearraya.removeatindex(0)

println(namearraya)

// 刪除最後乙個元素

namearraya.removelast()

println(namearraya)

// 定義不可變陣列,陣列的可變和不可變是通過let和var進行宣告的,在xcode6 beta4之前,不可變陣列(常量陣列)不能新增和刪除元素,但是可以對元素進行更改,但是在xcode6 beta4之後,常量陣列也不能更改裡面的元素

let namearrayd = ["張三", "李四", "王五"]

// namearrayd[0] = "替換"

for name in namearrayd

// 既取出陣列裡面的元素,又得到元素所在的下標,需要使用 enumerate(陣列名) 方法

for (index, name) in enumerate(namearrayd)

// 字典,在swift中,字典所有的key是同乙個型別,所有的value是同乙個型別,key和value可以是不同的型別,如果不是相應的同一型別,則自動轉換為oc中的nsdictionary

// 宣告乙個空的字典

var dictionarystudent = dictionary()

var person = ["name": "輝哥", "***": "男"]         // 相當於:var person: dictionary= ["name": "輝哥", "***": "男"]

println("person = \(person)")           // 字典的列印是無序的

// 往字典裡面新增鍵值

person["habit"] = "抽菸"

println("person = \(person)")

// 如果字典裡面沒有這個key,那麼直接新增,如果已經存在這個key了,那麼直接把之前的value替換掉

person["name"] = "波哥"

println("person = \(person)")

// 更新某個key對應的value,使用 updatevalue(value, forkey: key) 進行更新的時候,會返回更新之前的舊值

let oldvalue = person.updatevalue("崔哥", forkey: "name")

println("person = \(person), oldvalue = \(oldvalue)")

// 字典的遍歷

for (key, value) in person

// 字典的可變和不可變也是通過let和var進行控制的,不可以對常量字典進行更新

// 控制語句:if,if...else, while, do...while,switch...case

var num = 3

var condition = true

//if num

if condition

for var i = 0; i < 10; i++

for j in 0..<3

for j in 0...4

// switch,在swift中,對switch進行了很大的更改,預設不需要寫break

var number = 20

switch number

// 如果想強制執行下一條語句的話,需要使用fallthrough關鍵字,本語句必須是滿足條件的

var numbera = 10

switch numbera

// case是乙個範圍

var numberb = 12

switch numberb

// case的範圍可以交叉,但是只執行第乙個滿足條件的case語句

var numberc = 12

switch numberc

// 可以進行雙重判定(使用 「where 判定條件」關鍵字)

var numberd = 13

switch numberd

// 判斷點在座標系的什麼位置, 「_」 :忽略元組中對應位置的值

var point = (3, 5)

switch point

var pointa = (0, 4)

switch pointa

// optionals, 可選變數,如果使用optionals對變數進行宣告,那麼這個變數的值可能是空(nil)。  (需要注意拆包/解包)

// 在swift中只有nil表示空,沒有nil,null,null,nsnull

var value: int? // 「?」表示這是乙個可選變數,值可能為nil

let numberstr = "123456.3"

value = numberstr.toint()

if nil != value

var valuea = 21

let valueb = valuea + value!            // 拆包/解包,如果沒有值,則不能解包

println("valueb = \(valueb)")

swift教程 入門 swift 函式之旅

swift中的每個函式都有乙個型別,包含函式的引數型別和返回型別。它可以很容易的將函式作為引數進行傳遞,甚至從函式中返回引數型別。1 函式的申明與呼叫 func 函式名 引數1 型別 引數2 型別.返回型別 說明 1 func 是函式關鍵字 2 函式體 3 函式名,當要使用乙個函式的時候,通過函式名...

Swift教程導航

swift 教程 swift 環境搭建 swift 基本語法 swift 資料型別 swift 變數 swift 可選 optionals 型別 swift 常量 swift 字面量 swift 運算子 swift 條件語句 swift 迴圈 swift 字串 swift 字元 character ...

Swift開發基礎

import uikit extension double class viewcontroller uiviewcontroller else let m 20 if m 20 字元 字串定義 var charvalue1 character a 這是乙個字元 var strvalue1 stri...