美文网首页swiftiOS Swift 学习手册 程序员
Swift学习(一:基础部分,基本运算符)

Swift学习(一:基础部分,基本运算符)

作者: 爱偷懒的万万 | 来源:发表于2016-07-12 17:48 被阅读86次

    前言

    从今天开始,我会记录Swift的学习过程,有兴趣的朋友可以跟着一起学习。在这里推荐几个学习网址,大家共勉,我的学习记录是根据第一个链接写的。

    swift学习链接1
    swift学习链接2

    1.常量和变量
    let来声明常量,用var来声明变量。

        let a = 10;
        var b = 0;
    

    可以理解为:声明了一个名字为a常量,并给它赋值为10
    声明了一个名字为b变量,并给它赋初始值为0;

    可以在一行声明多个常量或变量:

        var x = 0.0, y = 0.0, z = 0.0
    

    2.类型标注
    声明常量或变量的时候可以加上类型标注

        var a : String
        a = "hello"
    

    声明一个类型为String,名字为a的变量
    给变量a赋值

    可以定义多个同类型的变量

      var a, b, c:Double
    

    3.打印输出
    Swift 用字符串插值(string interpolation)的方式把常量名或者变量名当做占位符加入到长字符串中,Swift 会用当前常量或变量的值替换这些占位符。将常量或变量名放入圆括号中,并在开括号前使用反斜杠将其转义:

        print("a 的值为\(a)")
    

    4.注释

        //这是单行注释
        /*这是多
        行注释*/
    

    5.类型转换:Int转Double

        let three = 3
        let p = 22.11
        let w = Double(three) + p
    

    6.布尔值

        let a = true
        let b = false
    

    7.元组

        let htt = (404,"not found") 
        http404Error 的类型是 (Int, String),值是 (404, "Not Found")
    

    可以将元组分解

        let (code,message) = htt
        print("this code is \(code)")
        print("this message is \(message)")
    

    如果只需要一部分元组,分解是可以把不需要的忽略,用_标记

        let (code,_) = htt
    

    可以用下标来访问元组中的元素

        print("this code is \(htt.0)")
        print("this message is \(htt.1)")
    

    给元素命名,然后通过名字来获取这些元素的值:

        let htt = (code:200,message:"ok")
        print("this code is \(htt.code)")
        print("this message is \(htt.message)")
    

    8.可选类型

        var a : Int? = 404 //a包含一个可选的Int
    

    如果声明一个可选的常量或变量但是没有赋值,则默认为nil

      var a : String?
    

    9.隐式解析可选类型
    一个隐式解析可选类型其实就是一个普通的可选类型,但是可以被当做非可选类型来使用,并不需要每次都使用解析来获取可选值。下面的例子展示了可选类型String和隐式解析可选类型String之间的区别

        let a : String? = "hahaha"
        let b : String = a!    //需要惊叹号来获取值
    
        let a : String! = "hehehe"
        let b : String = a   //不需要惊叹号来获取值
    

    注意
    如果一个变量之后可能变成nil的话请不要使用隐式解析可选类型。如果你需要在变量的生命周期中判断是否是nil的话,请使用普通可选类型。

    10.错误处理

        func canThrowAnerror() throws{
            //这个函数可能抛出错误
        }
    

    一个函数可以通过在声明中添加throws关键词来抛出错误消息。当你的函数能抛出错误消息时, 你应该在表达式中前置try关键词。

        do{
            try canThrowAnerror() throws{
                //没有错误抛出 
            }
                //有错误抛出
        }
    

    11.基本运算符

    • 赋值运算符=

    • 算术运算符 +,-,*,/
      加法运算符也可用作String的拼接:"hello,"+"world"

    • 求余运算符 a % b

    • 一元负号运算符:

        let three = -3  //three 等于 -3
        let a = -three   //a 等于 3  ,因为“--3”
      
    • 一元正号运算符:

        let two = -2    //two 等于 -2
        let a = +two  //a 等于 -2
      
    • 组合赋值运算符: +=,-=

    • 比较运算符 ==,!=,>,<,>=,<=

    12.三目运算符:它的形式是:问题 ? 答案一 : 答案二

        let a = 10
        let b = 12
        let c = true
        let d = a + (c ? a : b)
    

    13.空合运算符: a ?? b
    对可选类型a进行空判断,如果a包含一个值就进行解封,否则就返回一个默认值b

    表达式 a 必须是 Optional 类型。默认值 b 的类型必须要和 a 存储值的类型保持一致。

        a != nil ? a! : b   //这是空合运算符的复杂写法
    

    当可选类型 a 的值不为空时,进行强制解封(a!),访问 a 中的值;反之返回默认值 b。

        let c = "hehe"
        var d : String?
        let e = d ?? c
        print(e) //打印出来为 "hehe"
    

    14.区间运算符
    *闭区间运算符 :a...b
    包含ab(包括ab)

        for index in 1...5{
            print(index)
        }
    

    *半开区间运算符:a..<b
    包含ab但不包括b

    15.逻辑运算符

    • !a
    • a && b
    • a || b

    相关文章

      网友评论

        本文标题:Swift学习(一:基础部分,基本运算符)

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