swift基础---元祖加可选类型

元祖的介绍

  • 元组是Swift中特有的

  • 它是什么呢?

    • 它是一种数据结构,在数学中应用广泛。
    • 类似于数组或者字典
    • 可以用于定义一组数据
      • 特别提醒下元祖在习惯了OC语法之后听起来很怪,但是我觉得他挺简单 就像上面说的类似数组或者字典(具体的案例可以看做是网络请求返回的错误代码)
  • 元祖的定义
    元祖的常见写法有两种
    ("1001", "张三", 30, 90)
    (id:"1001", name:"张三", english_score:30, chinese_score:90)

  • 元祖的简单使用
    // 元祖:HTTP错误
    // let array = [404, "Not Found"]
    // 写法一:let error = (404, "Not Found")
    print(error.0)
    print(error.1)
    // 写法二:let error = (errorCode : 404, errorInfo : "Not Found")
    print(error.errorCode)
    print(error.errorInfo)
    // 写法三:let (errorCode, errorIno) = (404, "Not Found")
    print(errorCode)
    print(errorIno)

可选类型的介绍

  • 注意:

    • 可选类型时swift中非常难理解的一个知识点
    • 暂时先了解,多利用Xcode的提示来使用
    • 随着学习的深入,慢慢理解其中的原理和好处
  • 概念:

    • 在OC开发中,如果一个变量暂停不使用,可以赋值为0(基本属性类型)或者赋值为空(对象类型)
    • 在swift开发中,nil也是一个特殊的类型.因为和真实的类型不匹配是不 能赋值的(swift是强语言)
    • 但是开发中赋值nil,在所难免.因此推出了可选类型
  • 可选类型的取值:

    • 空值
    • 有值
  • 定义可选类型

    • 定义一个可选类型有两种写法
      • 最基本的写法

      • 语法糖(常用)

          // 错误写法
         //因为swift是一种强类型的语言所以不能把一个空类型赋值给字符串类型
         // let string : String = nil
         // 正确写法:
         // 写法一:定义可选类型
         let string : Optional = nil
         // 写法二:定义可选类型,语法糖(常用)
         let string : String? = nil
        
  • 可选类型的使用

       // 定义可选类型var string : Optional = nil
       // 给可选类型赋值string = "Hello world"
       // 打印结果
       print(string)
       // 结果:  Optional("Hello world")\n
       // 因为打印出来的是可选类型,所有会带Optional
       // 取出可选类型的真实值(解包)
       print(string!)
       // 结果:Hello world\n
       // 注意:如果可选类型为nil,强制取出其中的值(解包),会出错string = nilprint(string!)
        // 报错
       // 正确写法:
       if string != nil { print(string!)}
       // 简单写法:为了让在if语句中可以方便使用string
       if var str = string {
        print(str)
       }
    
  • 真实应用场景

    • 目的:让代码更加严谨(当请求的网址里面存在汉字的时候,会返回一个空的网址,这样的回话当发起一个request的时候看到会产生崩溃)

       // 通过该方法创建的URL,可能有值,也可能没有值
      // 错误写法:如果返回值是nil时,就不能接收了
      
          let url : NSURL = NSURL(string: "www.520it.com")
      // 正确写法:使用可选类型来接收
       let url : NSURL? = NSURL(string: "www.520it.com")
      // 通过url来创建request对象
       if let tempUrl = url { 
         let request = NSURLRequest(URL: tempUrl)
         }

你可能感兴趣的:(swift基础---元祖加可选类型)