2019年1月11日,今天,开始正式学习IOS开发,目前正在学习Swift开发语言。不是为了转行,一方面公司需要,一方面个人也比较感兴趣。
特此记录一下学习的过程。
知识点:
1、字符串连接有两种方式:
(1)通过+号进行连接即可;
(2)通过反斜杠和括号来进行连接。
print("\(name)的官网地址为:\(site)")
2、运算符与Java基本上一样,只是缺失了++,--之类的。
3、变量用var定义,常量用let定义。
4、条件选择语句与Java基本一样,形式不同。
(1)Swift的条件不用加括号包起来。
(2)Swift的switch语句不用加break,匹配到对应的case后,会自动停止break;如果想要继续向后查询的话,可以加fallthrough。
5、循环语句与Java类似,有几点不同:
(1)Swift没有for循环语句了现在。
(2)它的repeat{...} while 语句代替了Java中的do{...} while 语句。
6、循环的控制语句有三种:continue,break,fallthrough。
7、数组和Java比较类似,创建数组的三种方式:
var someArray = [SomeType]()
var someInts = [Int](repeating: 0, count: 3)
var someInts:[Int] = [10, 20, 30]
备注:
(1)Swift可以创建空数组,通过append()或者+=来添加数组的值。
(2)如果同时需要每个子项的索引值和Value值,可以调用enamerate()方法,如下:
for (index, item) in someStrs.enumerated() {
print("在 index = \(index) 位置上的值为 \(item)")
}
8、字典,这是一个键值对形式的数据集合,类似于数组,赋值,修改,遍历什么的类似。
创建方式有两种:
var someDict = [Int: String]()
var someDict:[Int:String] = [1:"One", 2:"Two", 3:"Three"]
备注:
(1)空字典可以通过给某一索引直接赋值即可。比如:someDict[1] = "aaa";
(2)字典转换为数组,只需调用字典相应的属性值即可。比如:var arrayDict = someDict.values;
9、枚举Enum
分为相关值和原始值:
相关值 | 原始值 |
---|---|
不同数据类型 | 相同数据类型 |
实例: enum {10,0.8,"Hello"} | 实例: enum {10,35,50} |
值的创建基于常量或变量 | 预先填充的值 |
相关值是当你在创建一个基于枚举成员的新常量或变量时才会被设置,并且每次当你这么做得时候,它的值可以是不同的。 | 原始值始终是相同的 |
备注:(1)case表示一行新的成员值(一个或者多个)将被定义。如果一行成员值有多个,那么用逗号分隔。
(2)相关值的成员值可以是不同类型的。来一个实例如下:
enum Student{ case Name(String) case Mark(Int,Int,Int) } var studDetails = Student.Name("Runoob") var studMarks = Student.Mark(98,97,95) switch studMarks { case .Name(let studName): print("学生的名字是: \(studName)。") case .Mark(let Mark1, let Mark2, let Mark3): print("学生的成绩是: \(Mark1),\(Mark2),\(Mark3)。") }
10、结构体Struct
和类有点类似。可以通过init()方法在创建结构体的时候赋值,类似于类的构造函数。
11、类class
和Java中的类大体上一致。
(1)属性分为储值属性和计算属性。储值属性即在类中定义值。计算属性则通过get和set方法进行操作(和Java中类的属性封装是不一样的!)。
(2)和Java一样,可以定义全局变量,局部变量,实例方法和类型方法(静态方法static)。
12、下标脚本(需再次理解消化)
13、类的继承
和Java中的类的继承大体上一致。通过冒号“:”来继承父类,这个和C#一样。Java是通过extends关键字继承的。
14、外部参数名:即在参数名前面定义一个参数名即可。比如:
init(fromLength length: Double, fromBreadth breadth: Double) { self.length = length self.breadth = breadth area = length * breadth }
其中,fromLength和fromBreadth就是外部参数名。
15、构造函数
和Java基本一致!
(1)参数不同的多构造函数。
(2)子类继承父类的写法和Java一致。