1. 每一门语言都是要用来编写程序的,那程序是什么?可能大家都知道,程序 = 数据结构 + 算法,任何一门语言的编程方式又有 面向过程 和 面向对象 之分。所以根据坐标系语言学习法,将 Swift 语言知识分为 4 类
--面向过程 数据结构(1-1象限)
常量/变量,基本数据类型
--面向对象 数据结构(1-2象限)
--面向过程 算法 (2-1)
--面向对象 算法 (2-2)
知识点:(1-1象限)
1. 常量和变量
2. 类型转换 很简单,要转换的类型(value) Double(a) Int("32") ...
类型别名 typealias s = String ; let d : s = 'hhh'
3. Swift 中新的数据类型:元组(Tuples)
var tups = ("hello", 123, 10.10)
println(tups.1) // 就是多类型数组,设计它的目的应该是有助于函数返回值返回多个类型
4. 函数定义
func 函数名(参数名:参数类型) -> 返回值 func sayHello(username:String, age:Int) -> String
多返回值 func say() -> (name:String, age:Int) { return ("xxx",11) }
外部参数(即在调用的时候必须说明)func say(name n:String, a:int) -> String(){}
外部参数调用时:say(name: 'xx', 30) 如果感觉太麻烦了,
直接 func say(#name:String) , name即为外部参数了
默认参数: func say(#name:String, age: Int = 10) 有默认值的参数默认就是外部参数
可变参数: func say(name:String...)
输入输出参数(即让参数变成了形参):
5. 函数类型(swift独有)类似于 C 中的函数指针, C# 中的 delegate, 目的是把函数当成一个普通变量来使用。
6. Closure
7. Enumerations
下面开始 2-2 象限的学习,即面向对象的数据结构
1. 类
class TV { }
var myTv = TV()
2. 构造函数init 和析构函数 deinit
3. 类 和 结构体的异同点:
相同点:
--都是有内部变量和函数
--都可以有初始化函数
--都可以用协议
不同点:
--类有继承
--类可以多重引用
--类有析构函数
--类是引用类型,结构体是值类型
4. 协议(protocol)其实就是 JAVA 中的接口