Swift初學總結

#初次接觸Swift,由于有OC鋪墊相對來說比較好入門,有興趣的可以查閱#

##/************************常量(let)*************************/##

```

NSString

//輸出語句

print("Hello, World!??")

// swift2.0 進行print出來末尾自己帶有換行符(\n)

//加上"? , terminator:""? "可以取消換行

//使用let定義的一個//////常量\\\\\\,不能重新賦值

//Swift支持隱式類型推斷,可以根據(jù)初值,自動判斷Swift的數(shù)據(jù)類型


let a = 10

print(a)

print("a")? //兩者輸出不同

let b : String = "ni hao!"

print(b);

let c = 20.1

//Swift不支持隱式類型轉(zhuǎn)換,不能讓兩個不一樣的數(shù)據(jù)類型做四則運算

//要轉(zhuǎn)換成想要的類型? Swift強轉(zhuǎn)的格式: 數(shù)據(jù)類型(需要強轉(zhuǎn)的數(shù)據(jù))

let d = Double(a) + c

print(d)

print("d = \(d)")

let 遲到的 = "做俯臥撐"

print("遲到的",遲到的)

let ?? = "笑"

print("??",??)

//Swift支持運算符的重載,會根據(jù)語境自動判斷運算符的含義

let e : String = "EEEE"

let f : String = "FFFF"

let str = e + f

print(str)

```

##/************************變量(var)*************************/##

```

//Swift里使用var定義一個變量

var a = 10

a = 100

print("a = " , a)

//如果需要定義一個初值為nil的變量,格式:? ? var + 變量名 + ":" + 變量名類型? = nil

var b : String? = nil //此處表示nil(不加"= nil"也行)

print(b)

var b1 : String = "" //此處表示null

print(b1)

```

##/************************數(shù)組*************************/##

```

//Swift數(shù)組里的數(shù)據(jù)類型必須是一樣的

//let array1 : [Int] = [1,2,3,"a"];//表示錯誤

let array = [1,2,3,"a"] //AnyObject? Swift1.0版本,? NSobject Swift2.0版本

print("array = \(array)")

//空數(shù)組

let array2 : [Int] = []

//指定數(shù)組類型

let array3 : [Int] = [1,2,3]

//數(shù)組的增 刪 改 查

var array4 = [1,2,3,4,5]

//查

print("查一個數(shù)",array4[2])

//增

//一個數(shù)據(jù)

array4 .insert(9, atIndex: 2)

print("增一個數(shù)",array4)

//一個數(shù)組

array4 .insertContentsOf(array3, at: 2)

print("增一個數(shù)組",array4)

//數(shù)組的拼接

var array5 = [5,5,5,5,5]

var array6 = array4 + array5

print("數(shù)組拼接",array6)

//改

array4[0] = 8

print("改一個數(shù)",array4)

//刪

//刪除數(shù)據(jù)的同時,保存內(nèi)存空間

//Swift里面的Bool是一個枚舉,只有true和false兩種參數(shù)

array4 .removeAtIndex(2)

print("刪一個數(shù)",array4)

let range : Range = Range(start: 1, end: 3)//包括首但不包括尾

array4 .removeRange(range)

print("刪一個區(qū)間",array4)

array4 .removeAll(keepCapacity: true)

print(array4)

```

##/************************字典*************************/##

```

//創(chuàng)建字典的兩種方式, Swift1.0 中沒有第一種方法

let Dict = [1:2, 3:4, "a":"b"]

//Swift字典里 所有的key, 所有的value都必須是同一類型的,如下

let Dict1 : [Int : String] = [1:"a", 2:"b"]

var Dic = [1:2, 3:4, 5:6]

//增

Dic[7] = 8

print("增加鍵值對",Dic)

//改

Dic[1] = 100

print("修改鍵值對",Dic)//字典的無序性

//查

print("查找數(shù)據(jù)",Dic[3])

//刪

Dic .removeValueForKey(1)

Dic[5] = nil

print("刪除數(shù)據(jù)",Dic)

```

##/************************元組(類似OC結構體)*************************/##

```

//使用() 表示定義一個元組,元組里沒有數(shù)據(jù)類型的概念

let type = ("羅風","DHM")

//訪問元組

//法一

print(type.1)

//法二

let type2 : (name : String, nickName : String) = type

print(type2.nickName)

```


##/************************for循環(huán)*************************/##

```

//let array = [1,1,1,1,1]

//

//for var i = 0; i < array.count; i++ {? //符號間加空格

//

//? ? print("i = \(i)")

//}

```

##/************************while循環(huán)*************************/##

```

//var i = 0

//

//while i < 10 {

//

//? ? print("i = =",i)

//

//? ? i++

//}

//

//

////repeat ... while 和 do ... while 一樣

////Swift1.0版本的時候叫做do ... while,Swift 2.0時叫repeat ... while

//

//var m = 0

//repeat {

//

//print(m)

//? m++

//

//}while m < 10

```

##/************************for ... in 循環(huán)*************************/##

```

//let array1 = [1,2,3,4,5]

//

//for var a in array1 {

//

//? ? print(a)

//}

```

##/************************分支結構*************************/##

```

//if .... else...

var timer : String? = nil

if timer != nil {

print("timer存在")

}else {

print("timer不存在")

}

//switch

let value = 10

switch value {

case 0:

print(value + 1)

case 1:

print(value)

default:

print("超了")

}

// "0...10" 表示 0~10的閉區(qū)間,包含 0,10.

// "0..<10" 表示 0~10的半閉區(qū)間,包含0,不包含10.

switch value {

case 0...10:

print(value)

case 11...20:

print(value)

default:

print("又超了")

}

let point = (10,0)

switch point {

case (10, 10):

print(point)

case (_, 10):

print(point.0)

case (10, _):

print(point.1)

case (_, _):

print(point)

}

let value3 = 0

let value4 = 100

switch value3{

case 0 where value4 < 10:

print(value3)

case 0 where value4 > 10:

print("正確")

default:

print("錯誤")

}

```

####

```


```

##/************************函數(shù)*************************/##

###

//無參無返回值

//無參有返回值

//有參無返回值

//有參有返回值

//inout函數(shù)

//嵌套函數(shù)

###

```

//無參無返回值函數(shù)

//func (關鍵字)? test (函數(shù)名) "()"(參數(shù)列表) -> Void(返回值類型)

func test () -> Void {

print("我是第一個函數(shù),無參無返回值")

}

test()


//無參有返回值函數(shù)func test1() -> String {? ?

? ? return "我是第二個函數(shù),無參有返回值"}?

//接受函數(shù)的返回值let strr = test1()print(strr)?

//返回一個Int類型數(shù)組func test2() -> Array{? ? ? ?

return [1, 2, 3]}

let arr = test2()

print(test2())print(arr)?

//返回一個OC數(shù)組func test3() -> NSArray {? ? ??

return [1, 2, "a", "b"]}

let nsarr = test3()print(nsarr)

//有參無返回值的函數(shù)

//參數(shù)格式參數(shù)名 + ":" + 參數(shù)類型

// " -> Void " 可以省略

func test4(name : String, sex : String) -> Void {? ? ? ?

print("我叫\(zhòng)(name), 我的性別是\(sex)")}test4("C羅", sex: "男")

//參數(shù)是一個數(shù)組格式 : 參數(shù)名 + ":" + Array<數(shù)據(jù)類型>

func test5(phoneNumber : Array) {

print("我的手機號是\(phoneNumber)")

}

test5([121212,45654789])

//有參有返回值的函數(shù)

func test6(name : String) ->String {

return (name)

}

let a5 = test6("wuyang")

print(a5)

//無參有多個返回值的函數(shù)

func test7() -> (String, String) {

return ("C羅", "18")

}

let type = test7()

print(type)

print(type.1)


//多參多返回值函數(shù)

func test8(name : String, age : Int) -> (String, Int) {

return (name, age)

}

let aa = test8("quan zheng", age: 18)

print(aa)

//inout函數(shù)

//1.參數(shù)默認是用let修飾,即常量

//2.在參數(shù)面前添加var,就可以在函數(shù)內(nèi)部修改參數(shù)的值,但是不能改變是參變量的值

//3.如果參數(shù)使用inout來修飾,就成了輸入輸出函數(shù),在函數(shù)內(nèi)部修改參數(shù),可以影響實參變量的值

func test9(inout number : Int) {

number = 100

}

var bb = 5

test9(&bb)

print(bb)

//函數(shù)嵌套

func test11 () {

???????? func test12 () {

?????????????????? func test13 () {

????????????????????????? func test14 () {

?????????????????????????????????????? //.....可以無限定義下去

???????????????????????? }

????????????????? }

??????????? }

???? }

```


最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末佳恬,一起剝皮案震驚了整個濱河市离陶,隨后出現(xiàn)的幾起案子嗅战,更是在濱河造成了極大的恐慌冠胯,老刑警劉巖阀蒂,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件啄育,死亡現(xiàn)場離奇詭異酌心,居然都是意外死亡,警方通過查閱死者的電腦和手機挑豌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進店門安券,熙熙樓的掌柜王于貴愁眉苦臉地迎上來墩崩,“玉大人,你說我怎么就攤上這事侯勉○谐铮” “怎么了?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵址貌,是天一觀的道長铐拐。 經(jīng)常有香客問我,道長练对,這世上最難降的妖魔是什么遍蟋? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮锹淌,結果婚禮上匿值,老公的妹妹穿的比我還像新娘。我一直安慰自己赂摆,他們只是感情好挟憔,可當我...
    茶點故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著烟号,像睡著了一般绊谭。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上汪拥,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天达传,我揣著相機與錄音,去河邊找鬼迫筑。 笑死宪赶,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的脯燃。 我是一名探鬼主播搂妻,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼辕棚!你這毒婦竟也來了欲主?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤逝嚎,失蹤者是張志新(化名)和其女友劉穎扁瓢,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體补君,經(jīng)...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡引几,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了挽铁。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片伟桅。...
    茶點故事閱讀 40,503評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡硅堆,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出贿讹,到底是詐尸還是另有隱情,我是刑警寧澤够掠,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布民褂,位于F島的核電站,受9級特大地震影響疯潭,放射性物質(zhì)發(fā)生泄漏赊堪。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一竖哩、第九天 我趴在偏房一處隱蔽的房頂上張望哭廉。 院中可真熱鬧,春花似錦相叁、人聲如沸遵绰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽椿访。三九已至,卻和暖如春虑润,著一層夾襖步出監(jiān)牢的瞬間成玫,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工拳喻, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留哭当,地道東北人。 一個月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓冗澈,卻偏偏與公主長得像钦勘,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子渗柿,可洞房花燭夜當晚...
    茶點故事閱讀 45,512評論 2 359

推薦閱讀更多精彩內(nèi)容