Swift

331 阅读1分钟

一、查看Swift版本&查看Xcode位置

$ xcrun swift -version

Apple Swift version 5.2.4 (swiftlang-1103.0.32.9 clang-1103.0.32.53)

$ xcrun --find swift
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift

Swift版本

  • 历时几年发展,从Swift1.x发展到了Swift5.x版本,经历了多次重大改变,ABI终于稳定
  • **API(Application Programming Interface)**应用程序编程接口: 源代码和库之间的接口
  • **ABI(Application Binary Interface)**应用程序二进制接口:应用程序与操作系统之间的底层接口,涉及的内容有:目标文件格式、数据类型的大小\布局\对齐、函数调用约定等等
  • 随着ABI的稳定,Swift语法基本不会再有太大的变动
  • 截止至2020年8月,目前最新版本:Swift5.2.4
  • Swift完全开源: https://github.com/apple/swift,主要采用C++编写

二、编译流程

  1. C源程序头文件>预编译处理(cpp)>编译程序>优化程序>汇编程序>链接程序>可执行文件
  2. swiftc一些操作:cdmain.swift父目录
  • 生成语法树: 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

对汇编代码进行分析,可以真正掌握变成语言的本质

三、基础语法

print("Hello, World!")
  • 不用编写main函数,Swift将全局范围内的首句可执行代码作为程序入口
  • 一句代码尾部可以省略分号(;),多句代码写到同一行时必须用分号(;)隔开
  • var定义变量,let定义常量,编译器能自动推断出变量\常量的类型
  • Playground可以快速预览代码效果,是学习语法的好帮手
  • Command + Shift + Enter:运行整个Playground
  • Shift + Enter:运行截止到某一行代码