这是我参与「第四届青训营 」笔记创作活动的的第12天,今天是8月7日,今天了学习Swift的基本知识,整理了相关的笔记。
基础语法
变量定义:
Swift可以自动推断类型,类型声明可省略
var:定义可变变量var name="cyy";
let:定义不可变变量let age=19;
数组:数组以有序的方式来储存相同类型的值。相同类型的值可以在数组的不同地方多次出现。
数组定义:var class:[String]=["calss1","class2"];
字典:同一类型的key对应一个唯一且同一类型的value
字典定义:var class:[String]:[String]=["name":"class"]
合集:将同一类型且不重复的值无序地储存在一个集合当中
合集定义:var id:class<String>=["name1","name2","name3"]
可选值:nil
可选值定义:
let name: String?//使用?定义可选String类型的name
name = "Tom"//给name赋值
if let name = name as? String {
//判断name是不是String类型
print(name) // Tom, String类型
}
驼峰命名法:变量名和函数名通过多个单词拼接,单词首字母大写
函数
swift使用func关键字来定义函数,使用->确定返回值的类型,参数名可在命名函数时在参数名前加_ 表示省略,在调用函数时即可省略参数名。
inout参数:表示在参数传递时是引用传递(即实际上是传递地址),调用时在参数前加上&表示引用
类(引用类型)
类可以使用定义常量、变量和函数的语法,可以在类中定义属性、添加方法。
类的继承:子类可以继承父类(超类)的方法,属性和其它特性,不继承于其它类的类,称之为基类。
类的访问:通过类名.属性名来访问类的属性,也可以赋值一个值到类的变量属性中
类的扩展:通过extension对类进行扩展,来增加新的属性、方法和其他特性
协议(protocol)
协议的定义:变量的set和get方法,必须使用var来修饰,函数的定义只需函数名参数和返回值即可,无需函数体
协议的使用:在函数、方法或者初始化器里作为形式参数类型或者返回类型; 作为常量、变量或者属性的类型; 作为数组、字典或者其他存储器的元素的类型。
闭包
闭包优点:利用上下文推断形式参数和返回值的类型; 单表达式的闭包可以隐式返回; 简写实际参数名; 尾随闭包语法。
闭包格式:
总结
今天了解了许多Swift的入门知识,了解了它与OC的不同