美文网首页
Swift3.0学习(一)

Swift3.0学习(一)

作者: cdd48b9d36e0 | 来源:发表于2018-02-07 10:03 被阅读4次

    1、常量和变量

    选择let还var

    优先选择let,因为这样安全,如果实在需要改再选var

    2、基本运算

    • swift里没有++和--
    • swift里表达式没有返回值,比如oc里a=11这个表达式的值是11,但是swift里a=11这个表达式的值为空

    3、逻辑分支

    guard

    这是swift2.0以后新增加的一个用法,比较简单,注意一下

    switch

    与OC里用法出入很大,基本全是反起来的,而且扩展了一些特殊用法

    4、元组

    一组元素就叫元组,类似于数组和字典,即可用下标取元素,也可用别名来取

    5、可选类型

    这个类型有什么用

    为了表示没有值的情况(OC里int a;这句代码实际上a是有值,a的值为0)

    这个类型的意义

    可选类型表示可能有值,也可能没有值
    非可选类型表示无论什么时候都有值

    两种定义方式

    var num1: Optional<Int> = 3或者var num2:Int? = 4

    注:可选类型本身也是一种类型(就像Int是整形,float是浮点型),比如上面这个就是把Int包起来的可选类型,与Array<Int>一样,只能与Optional<Int>进行运算

    还有一种写法是这样:var num2:Int! = 4
    这里的num2也是可选类型,它表示只要使用的时候有值就行,比如swift里的插座控件都是这个类型

    Swift里的nil

    swift中只有可选类型才能赋值nil,这里的nil就是一个特殊含义的字符,表示没有值(与oc的nil完全不一样,oc的nil表示空指针,值为0x000000)

    强制解包 “!”

    ?可选类型(包装了其他类型)
    !强制解包(包装的什么类型就变成什么类型)

    “强制解包”的四种方式

    因为可选类型有可能为空,所以不能随随便便取值了

    //写法一
    var num: Int? = 0
     num = nil
    if num != nil{
    let result = num!
    result + 1
    }
    
    //写法二:可选绑定
    //首先判断num是否为nil,是则let result = num的值为false,如果num不为nil,则let result = num的值为true,而且还会把num强制解包,并把解包后的值赋值给result
    var num: Int? = 0
     num = nil
    if let result = num{
    result + 1
    }
    
    //写法三:guard守护
    func check(score: Int?){
     guard let s = score else{
     return
     }
    s + 1
    }
    
    //写法四:空合运算符“??”
    var a: Int? = 1
    //如果a==nil,那么返回??后面的值
    //如果a != nil,返回a!强制解包后的值
    var b = a??0
    

    6、常见的类型转换符号

    • as 将实例转成某一种类型,比如子类→父类
    • as?将某个类型转成可选类型,通过判断可选类型是否有值,来决定是否转化成功
    • as! 将某个类型转成具体的类型,但是注意,如果不是该类型,那么程序会崩溃

    相关文章

      网友评论

          本文标题:Swift3.0学习(一)

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