标签:
Swift,苹果于2014年WWDC(苹果开发者大会)发布的新开发语言,可与Objective-C*共同运行于Mac OS和iOS平台,用于搭建基于苹果平台的应用程序。2015年的WWDC开发者大会上,苹果公司推出了Swift2.0版本,并且Swfit完全开源。自从Swift发布以来,在http://www.tiobe.com中的排行一直处于上升的状态。swift的使用也更加广泛,越来越多的开发人员,尝试使用swift进行开发。
这里只进行swift的一些基础语法的介绍,
//MARK: - 定义常量变量和变量类型的隐式转换(常量使用let修饰,变量使用var修饰)
1 //MARK: - 定义常量变量和变量类型的隐式转换(常量使用let修饰,变量使用var修饰)
2 let name1 : String = "jackss" //定义String类型的常量
3 var name2 : String = "jackss" //定义String类型的变量
4 let name = "jack"//或者var name = "jack" 如果没有类型修饰符,它会隐式转换(根据后面的类型自动识别name为String类型)
5 let age : Int = 18//如果定义常量最好给出初始值,定义变量可以不给初始值
6 var age1 : Int? //表示age1的类型为可选类型,其值可以为空
7 var cha : Character = "A"//定义字符类型的变量
8 //print(cha)
9 //定义一个bool类型的变量___在swift中bool类型的变量只有true或者false
10 var flag1 : Bool = true
11 var flag2 : Bool = true
//MARK: - 字符串String
1 //1.创建空的字符串
2 var str_empty = ""
3 var str1_empty = String()
4 //2.判断一个字符串是否为空字符串
5 if str_empty.isEmpty{
6 print("str_empty is empty");
7 }
8 //3.字符串的拼接
9 var str_url1 = "http://"
10 var str_url2 = "www.baidu.com"
11 let str_new_url = str_url1 + str_url2
12 print(str_new_url)//第一种打印方式
13 print("百度网址:\(str_new_url)\n") // 第二种打印方式
14
15 //4.获取字符串的长度
16 var str1 : String = "abcdef"
17 //5.字符串的比较
18 var str2 = "zifuchuanyi"
19 var str3 = "zifuchuaner"
20 if str2 != str3 {
21 print("他俩不相等")
22 }
//MARK: - 数组
1 //定义一个数组,Swift中数组中的 元素类型必须相同
2 var nameArray = ["WWW", "eee", "ash", "skla"]
3 var nameAray1 : Array<String> = ["yaqian", "danci", "heidehao"]
4 print(nameAray1[2])
5
6 //向数组中添加元素
7 var int_array = Array<Int>()
8 int_array.append(520)
9 int_array.append(123)
10 //print(int_array)
11
12 //使用运算符添加数组元素
13 int_array += [12]
14
15 //使用运算符添加多个数组元素
16 int_array += [13,14]
17
18 //插入元素到具体的位置
19 int_array.insert(22, atIndex: 1)
20
21 //移除某个元素
22 int_array.removeAtIndex(1)
//MARK: - 字典
1 //定义一个字典类型的变量
2 var dic : Dictionary<String,Int> = ["a":18, "b":19, "c":43, "d":89]
3 //定义空字典
4 var dic1 : Dictionary<String,Int> = [:]
5 var dic2 = Dictionary<String,Int>()
6 //往字典里添加键值对或者修改(若存在键值就是修改,若不存在就是添加)
7 dic["m"] = 50
8 //删除字典中的内容(根据键去删除)
9 dic.removeValueForKey("m")
//MARK: - 元组
1 //定义一个元组
2 //方法一:隐式转换
3 let tuples = ("课程",["语文", "数学", "物理"])
4 //方法二:显示初始化的方式
5 let tuplesNew : (String, Array) = ("课程",["语文", "数学", "物理"])
6 //取出元组中的值
7 //第一种方式:直接把元组赋值给另外一个常量,根据相关标记进行取值
8 let tuplesNew1 : (classroom:String,course:Array) = tuplesNew
9 var classInfo = tuplesNew1.classroom + tuplesNew1.course[0]
10 print(classInfo)
11 //第二种方式:直接根据下标取值
12 var classInfoNew = tuplesNew.1[2] + tuplesNew.1[0]
13 print(classInfoNew)
//MARK: - 循环:循环方式很多这里只介绍较简单的几种
1 //第一种形式
2 for var i = 1;i < 10;i++ {
3 print(i)//不包括10
4 }
5 //第二种形式
6 for number in 1..<10 {
7 print(number)//不包括10
8 }
9 //第三种形式
10 for number in 1...10
11 {
12 print(number)//包括10
13 }
14 repeat {//先执行一次循环体,再进行相关的循环
15 //print("love")
16 }while 1 < 0
//MARK: - 遍历:遍历数组跟OC类似,下面只介绍一下遍历字典
1 var animalDic = ["dog" : "??", "pig" : "??","fish" : "??","dragon" : "??","monkey" : "??",] 2 for (key, value) in animalDic { 3 print("key = \(key), value = \(value)") 4 }
//MARK: - 分支结构 (if结构和switch格式)
1 //if形式的
2 let flag4 = true
3 if flag4 == true {
4 //print("我是真的真的")
5
6 }else {
7 //print("这是假的")
8 }
9
10 //switch形式使用fallthrough实现贯穿每种可能(全部打印)
11 let value = 0
12 switch value {
13 case 0:
14 print("0")
15 fallthrough
16 case 10:
17 print("10")
18 fallthrough
19 default:
20 print("other")
21 }
22 //特点二:case之后可以使用一个范围(默认后面加了break)
23 switch value {
24 case 0...10:
25 print("输出0-10之间的数值")
26 case 10..<100:
27 print("输出10-100之间的数值")
28 default:
29 print("other")
30 }
31 //特点3:case后可以使用let和var修饰的常量或者变量;where是满足某种条件
32 switch value {
33 case var i where value>=0 && value < 6:
34 i = 99
35 print(i)
36 default:
37 print("other")
38 }
39
40 //特点4:case后还可以匹配一个元组
41 let point = (10,10)
42 switch point {
43 case (10,0):
44 print("1111111")
45 case (10,8):
46 print("22222")
47 case (_,10)://_代表可以忽略某个元素
48 print("3333333")
49 case (10,10)://
50 print("4444444")
51 default:
52 print("other")
53
54 }
//MARK: - 枚举(enum)
1 //枚举原始类型为int类型
2 enum Direction:Int {
3
4 case east = 0
5 case south = 1
6 case west = 2
7 case north = 3
8 }
9 print(Direction.east.rawValue)//rawValue就是找到相对应枚举的原始值
10 //根据原始值获取枚举的类型
11 print(Direction(rawValue: 2))
//MARK: - 函数
1 //1.无参无返
2 func function1() -> Void {
3 print("无返回值,无参数")
4 }
5
6 function1()
7
8 //2.无返回值,有参数
9 func function2(name str:String) -> Void {
10 print(str)
11 }
12
13 function2(name: "haode")
14 //3.有返回值,无参数
15 func function3() -> String {
16
17 return "炸天"
18 }
19 print(function3())
20
21 //4.有返回值,有参数
22 func function4(num1:Int,num2:Int) -> Int {
23 return num1 + num2
24 }
25 print(function4(5, num2: 6))
26
27 //函数的返回值为元组类型的
28 func function5(num1:Int,num2:Int) -> (Int,Int,Int) {
29
30 return (num1 + num2, num1 - num2,num1 * num2)
31 }
32 print(function5(2, num2: 1))
1 //外部参数和内部参数//first和second是外部参数,在函数调用的时候,会显示出来这两个名称
2 //one和two是内部参数,内部函数在函数内部使用
3 //默认情况下,第一个外部参数在调用的时候不显示,其余的均显示,而且和你定义的名字一样
4 func function6(first one:Int,second two:Int) {
5 print((one,two))
6 }
7
8 function6(first: 12, second: 2)
9
10 //如果都不想显示外部参数: "_"的作用是忽略(注意空格)
11 func function7(one:Int,_ two:Int) {
12 print("忽略外部参数")
13 }
14
15 function7(8, 9)
16
17 //函数的嵌套
18 func test1() {
19 func test2() {
20 func test3(){
21 print("今天天气好晴朗处处好风光")
22 }
23 test3()
24 }
25 test2()
26 print("今天天气不是很好")
27 }
28
29 //inout修饰的参数
30 func test(inout name:String){
31 name = "wangwang"
32 print(name)
33 }
34
35 var myName = "yuanyuan"
36 print("myName:\(myName)")
37 test(&myName)
38 print(myName)
标签:
原文地址:http://www.cnblogs.com/bdlfbj/p/5530836.html