Swift專欄 Swift基礎入門(二)

2021-07-29 14:10:18 字數 4533 閱讀 6262

使用string的原因

遍歷字串

// 字串遍歷

var str = "hello, swift"

forc

in str.characters

字串拼接
let str1 = "hello"

let str2 = "world"

let str3 = str1 + str2

let name = "why"

let age = 18

let info = "my name is \(name), age is \(age)"

let

min = 3

let second = 4

let time = string(format: "%02d:%02d", arguments: [min, second])

字串的擷取

簡單的方式是將string轉成nsstring來使用

let mystr = "www.520it.com"

var substr = (mystr as

nsstring).substringfromindex(4)

substr = (mystr as

nsstring).substringtoindex(3)

substr = (mystr as

nsstring).substringwithrange(nsrange(location: 4, length: 5))

// 定義乙個可變陣列,必須初始化才能使用

var array1 : [string] = [string]()

// 定義乙個不可變陣列

let array2 : [nsobject] = ["why", 18]

var stuarray1:array

var stuarray2: [string]

// 定義時直接初始化

var array = ["why", "lnj", "lmj"]

// 先定義,後初始化

var array : array

array = ["why", "lnj", "lmj"]

// 新增資料

// 刪除元素

array.removefirst()

// 修改元素

array[0] = "why"

// 取值

array[1]

// 遍歷陣列

for i in

0..count

// forin方式

for item in array

// 設定遍歷的區間

for item in array[0..<2]

// 陣列合併

// 注意:只有相同型別的陣列才能合併

var array = ["why", "lmj","lnj"]

var array1 = ["yz", "wsz"]

var array2 = array + array1;

// 不建議乙個陣列中存放多種型別的資料

var array3 = [2, 3, "why"]

var array4 = ["yz", 23]

array3 + array4

// 定義乙個可變字典

var dict1 : [string : nsobject] = [string : nsobject]()

// 定義乙個不可變字典

let dict2 = ["name" : "why", "age" : 18]

var dict1: dictionary

var dict2: [int: string]

// 定時字典的同時,進行初始化

var dict = ["name" : "why", "age" : 18]

// swift中任意物件,通常不使用nsobject,使用anyobject

var dict : dictionary

dict = ["name" : "why", "age" : 18]

// 新增資料

dict["height"] = 1.88

dict["weight"] = 70.0

dict

// 刪除字段

dict.removevalueforkey("height")

dict

// 修改字典

dict["name"] = "lmj"

dict

// 查詢字典

dict["name"]

// 遍歷字典中所有的值

for value in dict.values

// 遍歷字典中所有的鍵

for key in dict.keys

// 遍歷所有的鍵值對

for (key, value) in dict

// 字典的合併

var dict1 = ["name" : "yz", "age" : 20]

var dict2 = ["height" : 1.87, "phonenum" : "+86 110"]

// 字典不可以相加合併

for (key, value) in dict1

// 元祖:http錯誤

// let array = [404, "not found"]

// 寫法一:

let error = (404, "not found")

print(error.0)

print(error.1)

// 寫法二:

let error = (errorcode : 404, errorinfo : "not found")

print(error.errorcode)

print(error.errorinfo)

// 寫法三:

let (errorcode, errorino) = (404, "not found")

print(errorcode)

print(errorino)

概念:

可選型別的取值:

// 錯誤寫法

// let string : string = nil

// 正確寫法:

// 寫法一:定義可選型別

let string : optional

= nil

// 寫法二:定義可選型別,語法糖(常用)

let string : string? = nil

// 演練一:

// 定義可選型別

var string : optional

= nil

// 給可選型別賦值

string = "hello world"

// 列印結果

print(string)

// 結果:optional("hello world")\n

// 因為列印出來的是可選型別,所有會帶optional

// 演練二:

// 取出可選型別的真實值(解包)

print(string!)

// 結果:hello world\n

// 注意:如果可選型別為nil,強制取出其中的值(解包),會出錯

string = nil

print(string!) // 報錯

// 正確寫法:

if string != nil

// 簡單寫法:為了讓在if語句中可以方便使用string

ifvar str = string

// 通過該方法建立的url,可能有值,也可能沒有值

// 錯誤寫法:如果返回值是nil時,就不能接收了

let url : nsurl = nsurl(string: "www.520it.com")

// 正確寫法:使用可選型別來接收

let url : nsurl? = nsurl(string: "www.520it.com")

// 通過url來建立request物件

iflet tempurl = url

swift 基礎部分

一 數值型字面量 整數字面量可以被寫作 1 乙個十進位制數,沒有字首 2 乙個二進位制數,字首是0b 3 乙個八進位制數,字首是0o 4 乙個十六進製制數,字首是0x let decimalinteger 17 let binaryinteger ob10001let octalinteger 0o...

Swift 入門基礎

1.變數 var x 12 2.常量 let y 42.0 3.型別 bool int double float charactor string4.上限和下限 int.min int.max5.型別轉換 var x int y 6.顯式地型別宣告 var m int 7.字串 8.字串拼接 let...

Swift基礎高階

where與模式匹配 guard string 1 var str abc if str nil string?為string可選型,他意味著這種型別,可以為nil,還是那句話,可選型和nil不是乙個型別的特殊狀態,他是一種新的型別。2var optionalstr string?hello opt...