Swift語(yǔ)言是喬布斯留給我們的一門新的編程語(yǔ)言 用于ios編程 ,相比于OC語(yǔ)言 它是對(duì)編程更加簡(jiǎn)單,靈活和有趣.下面我就寫(xiě)下我初學(xué)Swift做的一些筆記 比較雜但很實(shí)用
同C語(yǔ)言輸出相似 Swift輸出實(shí)用print
print("hellow world")
Swift 語(yǔ)以空格結(jié)尾 不需要分號(hào)
所有使用let定義一個(gè)常量 不能重新賦值
Swift支持隱式類型推斷 可以根據(jù)初值 自動(dòng)的判斷Swift的數(shù)據(jù)類型
print(a)
let b : String = "nihao"
print(b)
let c = 20.1```
#Swift不支持隱式類型轉(zhuǎn)換 不能讓倆個(gè)不一樣的數(shù)據(jù)類型做四則運(yùn)算
#Swift強(qiáng)轉(zhuǎn)的格式 數(shù)據(jù)類型(需要強(qiáng)轉(zhuǎn)的數(shù)據(jù))
```let d = Double(a) + c
print(d)
let e : String = "changsha"
let f : String = "yucu"```
#Swift里面支持運(yùn)算符的重載 會(huì)根據(jù)語(yǔ)境自動(dòng)判斷運(yùn)算符的含義
```let f2 = e + f
print(f2)```
#變量
```//Swift里使用var定義一個(gè)變量
var a = 10
//可以賦一個(gè)新值
a = 100
print(a)
//如果需要定義一個(gè)初始值為nil的變量的話,格式 : var + 變量名 + ":" + 變量類型? = nil
var b : String? = nil
b = "student"
print(b)```
#數(shù)組
```//Swift數(shù)組里面的數(shù)據(jù)類型必須是一樣的
//AnyObject Swift1.0版本
////NSObject Swift2.0版本
let array = [1, 2, 3, 4, 5, "a"]
//數(shù)據(jù)初始化的第二種方式 先指定數(shù)據(jù)類型
let array1 : [Int] = [1, 2, 3, 4]
var array2 = [1, 2, 3, 4, 5]
//數(shù)組的增刪改查
//插入一個(gè)數(shù)
array2.insert(8, atIndex: 2)
////插入一個(gè)數(shù)組
var array3 = [6, 7, 8, 9]
array2.insertContentsOf(array3, at: 2)
//數(shù)組的刪
//刪除數(shù)據(jù)的同時(shí) 保存內(nèi)存空間
//Swift里邊的BOOL是一個(gè)枚舉 只有true flase 倆種參數(shù)
array2.removeAll(keepCapacity: true)
//按區(qū)間刪除
let range : Range = Range (start: 1, end: 5)
array2.removeRange(range)
//數(shù)組的改
array2[1] = 10
var array4 = [11, 12, 13, 45]
//運(yùn)算符重載
var array5 = array4 + array3```
#字典
```//一個(gè)簡(jiǎn)單的字典
let array = [1, 2, 3, "1"]
let dictionary = [1 : 2, 3 : 4, "a" : "b"]
//Swift的字典里面 所有的key 所有的value都必須是同一種類型的
let dictionary1 : [Int : String] = [1 : "a", 2 : "b"]
//可變的字典
var dictionary3 = [1 : 2, 3 : 4, 5 : 6]
//為不存在的值做賦值操作 就是增加操作
dictionary3[7] = 8
print(dictionary3)
//修改對(duì)應(yīng)key的value值
dictionary3[1] = 100
print(dictionary3)
//刪除對(duì)應(yīng)key 的value值
dictionary3.removeValueForKey(1)
print(dictionary3)
//查找
print(dictionary3[3])```
#元組
```//使用 () 表示定義一個(gè)元組 元組里面沒(méi)有數(shù)據(jù)類型的概念
let type = ("羅峰", "DHM")
//訪問(wèn) 元組的第一張方式 直接通過(guò)下標(biāo)訪問(wèn)
print(type.0)
//訪問(wèn)元組的第二種方式 通過(guò)類訪問(wèn)
let type2 : (name : String, nicName : String) = type
print(type2.name)```
#循環(huán)結(jié)構(gòu)
```//for循環(huán)
let array = [1, 2, 3, 4, 5]
for var i = 0; i < array.count; i++ {
print("i = \(i)")
}
//while循環(huán)Swift寫(xiě)法
var i = 0
while i < 10 {
i++
print(i)
}
//repeat while 和 do while一樣
//Swift1.0版本的時(shí)候叫做do while Swift2.0版本的時(shí)候叫做repeat while
repeat {
i++
print(i)
}while i < 10
//for in 循環(huán) Swift寫(xiě)法
let array2 = [1, 2, 3, 4, 5, 6]
for var a in array2 {
print(a)
}```
#循環(huán)分支
```var timer : String? = nil
if timer != nil {
print("timer存在")
} else {
print("timer不存在")
}
let value = 0
switch value {
case 0:
print(value)
case 1:
print(value)
default:
print("超了")
}
//0...10 表示的是 從0開(kāi)始到10結(jié)束 并且包含10
//0..<10 表示的是 從0開(kāi)始到10結(jié)束 并且不包含10
switch value {
case 0...10:
print(value)
case 11...20:
print(value)
default:
print("超了")
}
let point = (10, 10)
switch point {
case (10, 10):
print(point)
case (_, _):
print(point)
}
//判讀
let value3 = 0
let value2 = 100
//switch value = 0 value < 10 成立
switch value3 {
case 0 where value2 < 10:
print(value3)
case 0 where value2 > 10:
print("正確")
default:
print("錯(cuò)誤")
}```
//函數(shù)
```//無(wú)參無(wú)返回值函數(shù)
//func (關(guān)鍵字) test (函數(shù)名) "()" (參數(shù)列表) -> Void(返回值類型)
func test() -> Void {
print("我是第一個(gè)函數(shù)")
}
test()
//無(wú)參有返回值
func test1() -> String {
return "我是第二個(gè)參數(shù) 無(wú)參有返回值"
}
//接收函數(shù)的返回值
let str = test1()
print(test1())
//返回一個(gè)Int 類型的數(shù)組
func test2() -> Array<Int> {
return [1, 2, 3]
}
print(test2())
//返回一個(gè)OC的數(shù)組
func test3() -> NSArray {
return [1, 2, "a", "b"]
}
print(test3())
//有參無(wú)返回值的函數(shù)
//參數(shù)格式 參數(shù)名 + ":" + 參數(shù)類型
//-> Void可以省略
func test4(name : String, sex : String) -> Void {
print("我叫\(zhòng)(name),我的性別是\(sex)")
}
test4("羅峰", sex: "未知")
//有參數(shù)有返回值
//參數(shù)是一個(gè)數(shù)組格式 : 參數(shù)名 + ":" + Array<數(shù)據(jù)類型>
func test5(phoneNumber : Array<Int>) {
}
//無(wú)參有多個(gè)返回值
func test6() -> (String, String) {
return ("羅峰", "18")
}
//使用元組得出返回值
let type = test6()
print(type.0)
//有參有返回值
func test7(name : String, age : Int) -> (String, Int) {
return (name, age)
}
//使用元組得出返回值
let type1 = test7("羅峰", age: 18)
print("我叫\(zhòng)(type.0), 今年\(type.1)歲")
//inout函數(shù)
// Swift函數(shù)里面的參數(shù) 默認(rèn)是使用let修飾的 是不可以更改的
func test8(inout number : Int) {
number = 200
}
var a = 5
test8(&a)
print(a)
//函數(shù)嵌套
//第一層
func test10() {
//第二層
func test11() {
//第三層
func test12() {
//第四層
func test13() {
//第五層
func test14() {
//第六層
func test15() {
//...可以無(wú)限定義下去
}
}
}
}
}
}```
##好了 這篇就寫(xiě)這么多了 更多內(nèi)容將會(huì)在下篇博客書(shū)寫(xiě)