第一课 基础语法和汇编初探

Swift版本

Swift版本

  • 历时5年发展,从Swift l.x发展到了Swift5.x版本,经历了多次重大改变,ABI终于稳定

    • API ( Application Programming Interface):应用程序编程接口

      • 源代码和库之间的接口
    • ABI ( Application Binary Interface):应用程序二进制接口

      • 应用程序与操作系统之间的底层接口
      • 涉及的内容有:目标文件格式、数据类型的大小布局\对齐、函数调用约定等等
  • 随着ABI的稳定, Swift语法基本不会再有太大的变动,此时正是学习Swift的最佳时刻

swiftc

  • swiftc存放在Xcode内部

    • Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
  • 一些操作

    • 生成语法树: swiftc -dump-ast main.swift
    • 生成最乘法的SIL代码: swiftc -emit-sil main.swift
    • 生成LLVM IR代码: swiftc -emit-ir main.swift -o main.ll
    • 生成汇编代码:swiftc -emit-assembly main.swift -o main.s
  • 对汇编代码进行分析,可以真正掌握编程语言的本质

Playground

下面的代码是用 Playground 来创建视图

import  UIKit
import  PlaygroundSupport

let view = UIView()
view.frame = CGRect(x:0, y: 0, width: 100, height: 100)
view.backgroundColor = UIColor.red;
PlaygroundPage.current.liveView = view

注释

  • Playground的注释支持markup语法(与markdown相似)
  • Swift支持多行嵌套注释

常量

  • 只能赋值一次
  • 它的值不要求在编译时期确定,但使用之前必须赋值一次
    • 常量、变量在初始化之前,都不能使用
let age : Int
var height : Int
print(age)    //报错
print(height)   //报错

标识符

  • 几乎可以使用任何字符
  • 标识符不能以数字开头,不能包含空白字符、制表符、箭头等特殊字符

数据类型

image.png

字面量

如果是字符串,不用标明类型,如下所示

var string = "myString"

如果是单个字符,默认还是字符串类型,如果想要让它为 Character 类型,一定要在定义时声明

var char : Character = "C"
数组
var array = ["1", "2", "3"]
字典
var dict = ["1":1, "2":2, "3":3]
类型转换

以下为整数转换

var a:UInt8 = 8
var b:UInt16 = 10

var c = UInt16(a) + b
print(c)
元组
var  tuple = (404, "not found")
print(tuple.0)
print(tuple.1)

let (statuscode, result) = tuple
print (statuscode)
print(result)


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容