• 学习笔记(1)


    Swift 的 nil 和 Objective-C 中的 nil 并不一样。在 Objective-C 中,nil 是一个指向不存在对象的指针。在 Swift 中,nil 不是指针——它是一个确定的值,用来表示值缺失。任何类型的可选状态都可以被设置为 nil,不只是对象类型。

    Swift 程序由多种标记组成,标记可以是单词,标识符,常量,字符串或符号。

    1、数据类型:

    Int、Double、Float、Bool、String、Character、Optional

    Int:在32位平台上,IntInt32长度相同;在64位平台上,IntInt64长度相同。

    Double 表示64位浮点数。当你需要存储很大或者很高精度的浮点数时请使用此类型。

    Float 表示32位浮点数。精度要求不高的话可以使用此类型。

    Double精确度很高,至少有15位数字,而 Float 最少只有6位数字。

    Optional:使用可选类型来处理值可能缺失的情况。可选类型表示有值或没有值。

    类型别名:typealias newname = type

    Swift 是一个类型安全(type safe)的语言,所以它会在编译你的代码时进行类型检查

     2、可选类型

    var optionalInteger: Int?
    var optionalInteger: Optional<Int>

    当你声明一个可选变量或者可选属性的时候没有提供初始值,它的值会默认为 nil。

    隐式可选类型:

    一个隐式解析可选类型其实就是一个普通的可选类型,但是可以被当做非可选类型来使用,并不需要每次都使用解析来获取可选值。

    下面的例子展示了可选类型 String 和隐式解析可选类型 String 之间的区别:

    let possibleString: String? = "An optional string."
    let forcedString: String = possibleString! // 需要感叹号来获取值
    
    let assumedString: String! = "An implicitly unwrapped optional string."
    let implicitString: String = assumedString  // 不需要感叹号

    强制解析

    var myString:String?
    
    myString = "Hello, Swift!"
    
    if myString != nil {
       // 强制解析
       print( myString! )
    }else{
       print("myString 值为 nil")
    }

    自动解析:

    你可以在声明可选变量时使用感叹号(!)替换问号(?)。这样可选变量在使用时就不需要再加一个感叹号(!)来获取值,它会自动解析。

    var myString:String!
    
    myString = "Hello, Swift!"
    
    if myString != nil {
       print(myString)
    }else{
       print("myString 值为 nil")
    }

    可选绑定:

    使用可选绑定(optional binding)来判断可选类型是否包含值,如果包含就把值赋给一个临时常量或者变量。

    var myString:String?
    
    myString = "Hello, Swift!"
    
    if let yourString = myString {
       print("你的字符串值为 - (yourString)")
    }else{
       print("你的字符串没有值")
    }

    3、运算符

    位运算符:

    位运算符用来对二进制位进行操作,~,&,|,^分别为取反,按位与与,按位与或,按位与异或运算,如下表实例:

    pqp & qp | qp ^ q
    0 0 0 0 0
    0 1 0 1 1
    1 1 1 1 0
    1 0 0 1 1

     

     

     

     

    区间运算符

    闭区间运算符:(a...b)     包括a和b

    半开区间      :(a..

    print("闭区间运算符:")
    for index in 1...5 {
        print("(index) * 5 = (index * 5)")
    }
    
    print("半开区间运算符:")
    for index in 1..<5 {
        print("(index) * 5 = (index * 5)")
    }
  • 相关阅读:
    Win32程序支持命令行参数的做法
    打包jar类库与使用jar类库
    Java日期格式化
    集合类层次结构关系
    深入理解Arrays.sort()
    Java 异常类层次结构
    equals()与hashCode()方法协作约定
    shp数据和tab数据的两点区别
    java+上传文件夹
    vue+大文件分片上传
  • 原文地址:https://www.cnblogs.com/liyonghua/p/11457160.html
Copyright © 2020-2023  润新知