美文网首页门外汉自学Swift
20170603基础知识-数据类型、控制语句、集合类型

20170603基础知识-数据类型、控制语句、集合类型

作者: 花间提壶蛋大厨 | 来源:发表于2017-06-13 09:21 被阅读0次

    1、Swift原生数据类型:值类型(副本)、引用类型(本身)

    2、整数型,max min方法,获得当前整数的最大值、最小值

    3、浮点型,默认的推断功能是Double类型,Float需要自己声明

    4、0b:二进制;0o:八进制;0x:十六进制

    5、整数和浮点数可以增加0和_来提高可读性,例如:000.0156;3_360_000(类似千分符)

    6、数字类型之间的转换用构造函数,UInt16()、UInt8()、Float()等

    7、元组,是一种数据结构,关系数据库中的基本概念,元组表中的一条记录,(“值”,“值”,“值” ) 或者 (字段:“值”,字段:“值”,字段:“值”)

    元组多用于函数返回多值

    8、Swift所有的数据类型声明的变量或常量不能为空nil

    查询数据库之类的操作,会出现空值,需要可选类型?! var str :String? = nil

    对可选类型,必须要进行拆包,?-!显式拆包,!-! 隐式拆包,隐式拆包常用于可选类型值可以确定为非空

    可选绑定:可选类型的赋值、判断是否为空,如果不为空,可以拆包并且赋值给常量

    9、字符(Character)、字符串,都是用双引号,不能用单引号

    10、字符串的长度:str.characters.count

    字符串的拼接:append方法

    11、guard 条件表达式 else {跳转语句(return、break、continue、throw)} 语句组,提高多个if-else结构的可读性

    表达式为true时,直接执行语句组

    12、for i in stride(from: 2, to: 10, by: 2) {

    if i == 3 {

    break

    }

    stride来控制循环的步长,from to : ≥2,<10; from through : ≥2,≤10

    for i in (1…5).reversed() :反向遍历

    13、fallthrough,为了switch..case中,贯穿case用的,因为有隐性的break,所以要想贯穿case,需要加fallthrough

    14、原生集合类型:数组、Set、字典(映射、散列表)

    15、数组声明:  var i: Array  或者 var i: [String]

    let 数组,为不可变数组,必须初始化

    var i = [String]() ,初始化了数组,开辟了内存空间;var i: [String] 还没有初始化,没有开辟内存空间

    数组的长度:count属性

    数组遍历:for i in 数组;for (index, value) in 数组.enumerated() 取出索引和元素

    append增加,insert(_, at:_)插入,remove(at:_)删除

    16、字典:key→value,键→值,key不能重复,value可以重复

    var i:Dictionary 或者 var i: [Int : String]

    字典需要初始化才能使用,往往在声明时初始化

    字典元素的删除:removeValue(forKey:键名)  或者 键=nil

    字典元素的替换:键=新值 或者 updateValue(新值, forKey:键名)

    遍历键:for i in 字典.keys

    遍历值:for i in 字典.values

    全部遍历:for (index, value) in 字典

    17、Set,无序、相同类型、不能重复

    var i: Set

    Set元素的插入:insert()

    Set元素的删除:removeFirst() 删除第一个元素或者 remove()

    Set的遍历:for i in Set 或者 for (index, value) in Set.enumerated(),index其实是可以循环的次数

    Set的交集:A.intersection(B)

    Set的并集:A.union(B)

    Set的异或集合:A.symmetricDifference(B)

    Set的差集:A.subtracting(B)

    Set是否子集:A.isSubset(B)

    相关文章

      网友评论

        本文标题:20170603基础知识-数据类型、控制语句、集合类型

        本文链接:https://www.haomeiwen.com/subject/zfxdqxtx.html