美文网首页swift学习
Swift5.1 入门(1)

Swift5.1 入门(1)

作者: HChase | 来源:发表于2019-06-20 17:03 被阅读44次

1. 常量和变量

var 定义变量,let 定义常量,系统自动推断出变量或常量类型;

    func test() {
        var a = 52.0
        let b = 10
        
        a = a + Double(b)
        print("\(a)  \(b)")
    }
  • 常量(let) 只能赋值一次;
  • 常量(let) 的值不要求在编译时确定,但是在使用之前,必须已经赋值一次;
    func test1() {
        let b: Int
        b = 40
        print(b)
    }
  • 常量变量 在初始化之前不能被使用,否则报错;

2. 标识符

  • Swiftoc 不同,Swift 的标识符(变量名,常量名,函数名)几乎可以使用任何字符表示;

  • 标识符 不能以数字开头,不能包含空格,制表符,箭头等特殊字符;

    func 😩🐂() {
        let 😊: Int = 10
        var 🧨: Float = 12.0
        🧨 = 40.0
        
        print(😊)
        print(🧨)
    }

3. 常见的数据类型

  • 整形类型包含: Int8、Int16、Int32、Int64、UInt8、UInt16、UInt32、UInt64;
  • 使用 Int 定义变量或常量整形,系统会自动判断整形类别,32位系统中是Int32,64位系统中是Int64;

4. 字面量

  • bool 布尔值

let b = true
let b = fase

  • String 字符串

let a = "abc123"

  • Character 字符 (可存储ASCII字符、Unicode字符)

let a: Character = "a"
let a: Character = "🐶"

  • Int 整形

let a = 10
let a: Int = 10   //十进制
let a = 0b1001   //二进制
let a = 0o34   //八进制
let a =0xff   //十六进制

  • 浮点型

let a = 12.8   //十进制
let a = 0xfp2   //十六进制,等价于十进制15 * 2^2 = 60.0
let a = 0xfp-2   //十六进制,等价于十进制15 * 2^-2 = 3.75

  • 数组

let a = [1,2,3,4,5]

  • 字典

let a = ["age": 20, "height": 170]


5. 类型转换

  • 格式:类型(变量\常量)
        let a: Int = 20
        let b: Float = Float(a)
  • 类型相同,才能进行运算
        let a: Int = 20
        let b: Float = 30.0
        let c: Float = b + Float(a)

        // 字面量可以直接相加,因为数字字面量本身没有明确的类型
        let d = 5 + 1.67

6. 元组(Tuple)

元组的几种定义方式:

        // 方式1
        let httpStatus = (200, "request success")
        print("\(httpStatus.0)")

        // 方式2
        let (statusCode, response) = (200, "request success")
        print("\(statusCode)   \(response)")

        // 方式3
        let (statusCode, _) = (200, "request success")
        print("\(statusCode) ")

        // 方式4
        let httpStatus = (statusCode: 200, response: "request success")
        print("\(httpStatus.statusCode)   \(httpStatus.response)")

7. swift的编译过程
swift 编译过程

swift的编译过程:


  1. swift code : swift 源代码;
  2. swift ast : 将swift 源代码生成语法树 ;
swiftc-dump-ast    main.swift
  1. raw Swift IL: 生成最简洁的SIL代码;
swiftc-emit-sil    main.swift
  1. 生成 llvm IR 代码;
swiftc-emit-ir   main.swift  -o main.ll
  1. 生成汇编代码
swiftc-emit-assembly   main.swift  -o main.s

相关文章

网友评论

    本文标题:Swift5.1 入门(1)

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