swift學習之基礎語法

2021-07-09 03:25:42 字數 4983 閱讀 8347

一、swift的基本語法:

下面來介紹swift的基本用法(在main.swift中的**):

import foundation

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 學習之基礎語法

1,題目 判斷101 200之間有多少個素數,並輸出所有素數。for var i 101 i 200 i 2,題目 假設有乙個學習成績的陣列,利用條件運算子的巢狀來完成此題 學習成績 90分的同學用a表示,60 89分之間的用b表示,60分以下的用c表示。var chengji 92,78,56 f...

Swift學習 1基礎語法

swift 基礎語法 基本1.取消了預處理命令 2.取消了指標的概念 3.取消了ns字首 4.大量將類替換成struct 5.在同一行用來分割語句,如果不是同一行可以省略 6.可選項 7.playground 8.條件語句 if 空執行 9.沒有非0即真的邏輯 10.switch 1 可以針對任意型...

Swift基礎語法

在swift中匯入類庫使用 import 類庫名,不再使用 和 import foundation 輸出語句 swift中的輸出語句使用print c語言中使用prientf print hello,world 常量 變數 定義常量使用 let 常量不能改變 定義變數使用var 變數可以改變 let...