Swift語(yǔ)言簡(jiǎn)介:
Swift是Apple在2014年6月2日并于2015年12月4日宣布開放源代碼的新開發(fā)計(jì)算機(jī)編程語(yǔ)言,它起源于Objective-c并參考了C/JavaScript/Python/Java等多種語(yǔ)言,適配與OS X和iOS系統(tǒng),Swift是第一套就有腳本語(yǔ)言同樣的表現(xiàn)力和趣味性的系統(tǒng)編程語(yǔ)言.
下面就讓我們看一下Swift語(yǔ)言的一些基本屬性
(一)常量 : 在Swift語(yǔ)言中定義一個(gè)常量要使用 let 這個(gè)關(guān)鍵字 (示例代碼如下)
1.定義常量屬性
let a : String = "Hello"
let b = 20.1
var c = 10
let 遲到的 = "做俯臥撐" //Swift中可以用中文直接進(jìn)行命名
let ?? = "哭" //Swift中可以用表情符號(hào)進(jìn)行命名
2.類型強(qiáng)轉(zhuǎn)格式: 數(shù)據(jù)類型(需要強(qiáng)轉(zhuǎn)的數(shù)據(jù))
let d = a + Double(c) //在Swift里面要將兩個(gè)不同類型的數(shù)據(jù)合并到一起 就要對(duì)其中的某一條數(shù)據(jù)進(jìn)行強(qiáng)制轉(zhuǎn)換
3.運(yùn)算符重載
let str2 = str + str1 //在Swift中兩個(gè)字符串可以直接相加
- 注意 :
1> Swift語(yǔ)言中的常量不可以重新賦值;
2>Swift中可以用中文直接進(jìn)行命名
3>Swift中可以用表情符號(hào)進(jìn)行命名
4> Swift語(yǔ)言支持隱式類型推斷(可以根據(jù)初始值自動(dòng)的判斷Swift的數(shù)據(jù)類型)
5>Swift語(yǔ)言中不支持隱式類型的轉(zhuǎn)換(不可以讓兩個(gè)不一樣的數(shù)據(jù)做四則運(yùn)算)
6>Swift語(yǔ)言中支持運(yùn)算符的重載,會(huì)根據(jù)語(yǔ)境自動(dòng)哦按段運(yùn)算符的含義
(二)變量 : 在Swift語(yǔ)言中定義一個(gè)變量要使用 var 這個(gè)關(guān)鍵字
1.定義變量屬性(示例代碼如下)
var a = 10
a = 100 //當(dāng)Swift使用var定義一個(gè)變量的時(shí)候,我們可以直接改變它的值
2.定義變量初始值為nil的格式: var + 變量名 + ":" + 變量類型? = nil
var b : String? = nil
let 與 var 的區(qū)別:
let所指向的地址區(qū)域中的數(shù)據(jù)是不可更改的,var指向的地址區(qū)域中的數(shù)據(jù)是可以更改的
(三)數(shù)組
1.定義數(shù)組屬性(示例代碼如下)
let array1 : [Int] = [1,2,4]//第一種:數(shù)組初始化先指定數(shù)據(jù)類型
let array2 : [Int] = []//定義一個(gè)空的數(shù)組
var array = [1,2,3,4,5] //定義一個(gè)int類型的變量數(shù)組
2.數(shù)組的增刪改查(示例代碼如下)
1.數(shù)組的查
print(array[1])
2.數(shù)組的增
array.insert(10, atIndex: 2) //在數(shù)組中指定位置單獨(dú)的插入一條數(shù)據(jù)
var array1 = [11,12,13,14,15]
array.insertContentsOf(array1, at: 2) //在數(shù)組中指定位置插入一個(gè)新的數(shù)組
print(array)
3.數(shù)組的刪
//刪除數(shù)據(jù)的同事,保存內(nèi)存空間
//Swift里面的Bool是一個(gè)枚舉,只有true(真)和false(假)兩種參數(shù)
array.removeAll(keepCapacity: true)//刪除所有
let range : Range = Range(start: 0, end: 2)//刪除指定
array.removeRange(range)
4.數(shù)組的改
array[1] = 10
print(array)
5.數(shù)組的拼接
let array2 = [6,7,8,9,10]
var array3 = array + array2
print(array3)
(四)字典
1.創(chuàng)建字典初始化方式(兩種)
let dictionary = [1:2, 3:4, "a":"b"]//創(chuàng)建字典的兩種方式,Swift1.0版本不存在這種初始化方式
let dictionary1 : [Int : String] = [1:"a", 2:"b"]//Swift的字典中,所有的key值和所有的value都必須是同一種類型
var dictionary2 = [1:2, 3:4, 5:6]
print(dictionary2)
2.字典數(shù)據(jù)的增刪改查
1.字典數(shù)據(jù)的增加
dictionary2[7] = 8
print(dictionary2)
2.字典數(shù)據(jù)的修改
dictionary2[1] = 100
print(dictionary2)
3.字典數(shù)據(jù)的刪除
dictionary2.removeValueForKey(1)
print(dictionary2)
4.字典數(shù)據(jù)的查找
var dictionary = [1 : 2, 3 : 4, 5 : 6]
print(dictionary)
(五)元祖
1.定義元祖屬性 : 要使用()表示定義一個(gè)元祖,元祖里面沒有數(shù)據(jù)類型的概念(示例代碼如下)
let type = ("妞妞","DHM")
2.訪問元祖的方法(兩種)
//第一種方法
print(type.0)
let type2 : (name : String, nickName : String) = type
//第二種方法:通過(guò)對(duì)應(yīng)的key值找到相對(duì)應(yīng)的value值
print(type2.name)
(六)循環(huán)
1.for 循環(huán)
let array = [1,2,3,4,5]
for var i = 0; i < array.count; i++ {
print("i = \(i)")
}
2.while循環(huán)
var i = 0
while i < 10 {
i++
print(i)
}
3.repeat循環(huán)(相當(dāng)于OC中的do while)
repeat{
i++
print(i)
}while i < 10
- //Swift1.版本的時(shí)候叫做do while,Swift2.0版本的時(shí)候叫做repeat while
4.for in 循環(huán)
let array1 = [2,3,4,5,6]
for var a in array1 {
print(a)
}
(七)循環(huán)結(jié)構(gòu) -- 分支結(jié)構(gòu)
1.
var timer : String? = nil
if timer != nil {
print("timer存在")
}else{
print("timer不存在")
}
2.switch分支結(jié)構(gòu)
let value = 100
switch value {
case 0 :
print(value)
case 1:
print(value)
default:
print("大妞妞")
}
//0...10 表示的是從0開始到10結(jié)束,并且包含10
//0..<10 表示的是從0開始到10結(jié)束,但不包括10
switch value {
case 0...10:
print(value)
case 11..<20:
print(value)
default:
print("??牌大妞妞")
}
3.
let point = (10,10)
switch point {
case(10, 10):
print(point)
case(_, 10):
print(point.0)
case(10, _):
print(point.1)
case(_, _):
print(point)
}
4.
let value1 = 0
let value2 = 100
switch value1 {
case 0 where value2 < 10:
print(value1)
case 0 where value2 > 10:
print("正確")
default:
print("錯(cuò)誤")
}
(八)函數(shù)分類
1?.無(wú)參有單個(gè)返回值
2.無(wú)參有多個(gè)返回值
3.有參無(wú)返回值
4.有參有單個(gè)返回值
5.有參有多個(gè)返回值
6.inout 函數(shù)
7.嵌套函數(shù)
1.無(wú)參無(wú)返回值函數(shù)
//func(關(guān)鍵字) test(函數(shù)名) "()"(參數(shù)列表) -> Void(返回值類型)
func test() -> Void {
print("我是第一個(gè)函數(shù)")
}
test()
2.無(wú)參有返回值函數(shù)
func test1() -> String {
return "我是第二個(gè)函數(shù),無(wú)參有返回值"
}
//接收函數(shù)的返回值
let str = test1()
print(str)
//數(shù)組后面的類型用尖括號(hào)
func test1() -> Array<Int> {
return [1,2,3]
}
//返回一個(gè)OC的數(shù)組
func test3() -> NSArray {
return [1, 2, "a", "b"]
}
3.有參無(wú)返回值的函數(shù)
//參數(shù)格式是 參數(shù)名 + ":" + 參數(shù)類型
// -> Void 可以省略
func test4(name : String, sex : String) -> Void {
print("我叫\(zhòng)(name), 我的性別是\(sex)")
}
test4("大妞妞", sex: "未知")
//參數(shù)是一個(gè)數(shù)組格式 : 參數(shù)名 + ":" + Array<數(shù)據(jù)類型>
func test5(phoneNumber : Array<Int>) {
}
4.有參有返回值函數(shù)
func test6(name : String) -> String {
return "我的名字是\(name)"
}
5.無(wú)參有多個(gè)返回值
func test7() -> (String,String) {
return("大妞妞", "21")
}
let type = test7()
print(type)
print(type.1)
func test8(name : String, sex : String) -> (String,String) {
return(name, sex)
}
let type1 = test8("妞妞", sex: "男")
6.into函數(shù)
//Swift函數(shù)里面的參數(shù) 默認(rèn)是使用let修飾的,是不可以更改的
func test9(inout number : Int) {
number = 100
}
var a = 5
test9(&a)
print(a)
7.函數(shù)嵌套
//第一層
func test10() {
//第二層
func test11() {
//第三層
func test12() {
//第四層
func test13() {
//第五層
func test14() {
//第六層
func test15() {
//.....可以無(wú)限定義下去
}
}
}
}
}
}