LearningNotes-Swift

总结回顾:赵哲A001系列视频课程

2015-03-12  本文已影响122人  sing_crystal

一、变量常量Variable,Constant

字符串+字符不能直接使用加号,需要使用append

String.append(Character) 

二、字符串String


三、字符Character

四、数组和字典

类型化的集合

数组中如果出现不同类型的内容,则是OC中的数组,不是swift的数组。

1.给数组规定类型  

var names: String ( ) = [ "aa","dd","ff" ]

var arr: [Int] = [2,3]

var arr:Array<Int> = [2,3]

var arr = [Int]( )

2.增加数组

var shoppingList = [“松花蛋”,”豆浆"]

shoppingList.append( “啤酒")

shoppingList += [“枸杞”,”香油”,”五香粉"]

3.修改数组中的某个内容

shoppingList[0] = "6颗松花蛋"

4.批量修改数组中连续的内容

shoppingList[3...5] = ["⽑毛⾖豆", "⻩黄⽠瓜"]

5.增加字典的内容

var numberOfLegs = ["蚂蚁": 6, "⼩小蛇": 0, "⼩小狗": 4]

numberOfLegs["蜘蛛"] = 273

6.查询字典中的一个可能值

使用option可能值这个方法

7.给字典规定类型

var numberOfLegs: Dictionary<String, Int> = ["蚂蚁": 6, "⼩小蛇": 0, "⼩小狗": 4]

var numberOfLegs: [String: Int]= ["蚂蚁": 6, "⼩小蛇": 0, "⼩小狗": 4]

五、if语句

六、Switch语句

1.注意事项:

无需写break语句

但是必须写default语句(必须全面覆盖,Switch must be exhaustive)

2.常用的使用场景:

switch sender {

        case button:

                  println("有人点了按钮") 

         case usernameTextField:

                   println("有人点了用户名输入框")

          default:

                    println("有⼈点到了其它东西")

}

3.可以用逗号分割所有的可能性,无需给每一个可能性写一个case

switch legCount {

       case 0:

               println("蹭蹭蹭")

       case 1, 3, 5, 7, 9, 11, 13:

                println("颠颠颠⼉儿")

       default:

                 println("⾛走⾛走⾛走")

}

4.区间匹配

switch legCount {

        case 0:

               println("蹭蹭蹭")

        case 1...8 :

                println("颠颠颠⼉儿")

        default:

                println("⾛走⾛走⾛走")

}

七、函数/方法Function

可以带参数,可以带多个参数。

参数可以带默认值。

可以带返回值。 ->

可以带多个返回值。(,)小括号,逗号分割多个返回值。

八、元组Tuples

合并在一起的数据结果

元组支持整体加可能

注意:(Int?, Int?) 和 (Int, Int)?的不同

1)(Int?, Int?) 元组肯定有值。元组里的第一个元素有值,第二个元素没有值;第一个没有值,第二个有值;第一个有值,第二个也有值;第一个没有值,第二个也没有值。

2)(Int, Int)?这个元组可能有值,这个元组也可能没有值。但是如果这个元组有值,那么元组里的两个元素是一定有值的。

九、闭包 Closure

无参数无返回值

闭包可作为参数

依附式闭包

十、类 Class

1.属性 properties

2.方法 methods

3.初始化 initializers

1. 属性 properties

(1)可以继承某个类,也可以不继承。

(2)储值属性

(3)算值属性

当前属性的值,可以由其他的值算出来。

get { 

}

set {

}

newValue变量访问新值

(4)自动内存空间分配 Automatic Memory Allocation

(5)初始化

初始化没有返回值

init ( ) {

       super.init ( )

}

(6)属性覆盖

(7)方法覆盖

(8)属性观察

willSet {

// 在这里可以通过 newValue 变量访问新值

}

didSet {

// 在这里可以通过 oldValue 变量访问旧值

}

2. 方法 Methods

3.初始化

十一、结构体 Struct

1.

struct 名字 {

}

2.

结构体内可以增加算值属性,在结构体内部增加方法,对现有数值属性进行属性观察

3.

结构体和类的区别:

1)结构体不可以继承;类可以继承。

2)结构体是值传递;类是引用值传递。

4.

mutating 试图修改结构体内部的元素值

十二、枚举 Enumerations

1.

enum 名字:类型 {

}

2. toRaw( ) 获取枚举内部的行值

3.行值:可以是Int整型类型,也可以是String字符串类型

4.关联值

5.初始化方法

6.算值属性

十三、扩展 Extensions

1.

extension 名字 {

}

十四、一个非泛型化的栈结构的结构体

A Non-Generic Stack Structure

上一篇下一篇

猜你喜欢

热点阅读