美文网首页
基本运算 流程控制 函数

基本运算 流程控制 函数

作者: 纳兰沫 | 来源:发表于2019-08-08 12:56 被阅读0次

ABI

ABI 应用程序和操作系统之间的二进制接口
涉及的内容有  目标文件格式 数据类型的大小/布局/对齐 函数调用约定等等
LLVM 作为编译器的后端 生成对应平台的二进制代码

OC Swift区别

OC Swift
- OC 编译器的前端是Clang LLVM 是编译器的后端  生成对应平台的二进制代码
- Swift 编译器的前端是swiftc  进行词法分析 生成语法树  LLVM 是编译器的后端  生成对应平台的二进制代码

swiftc 位置

swiftc 存放在在Xcode内部
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc

swiftc 操作

- 生成语法树  swiftc -dump-ast main.swift 语法树结果直接生成在终端
swiftc -dump-ast main.swift -o main.ast 会把语法树结果生成在main.ast文件内
- 生成最简洁的SIL代码 swiftc -emit-sil main.swift
- 生成LLVM IR代码 swiftc -emit-ir main.swift -o main.ll
- 生成汇编代码 swiftc -emit-assembly main.swift -o main.s

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

Swift

- 不用编写main函数 Swift将全局范围内首句可执行代码作为程序的入口
- 一句代码尾部可以省略分号 多句代码写在同一行必须要用分号进行分割
- 用var声明变量 用let声明常量 编译器能够自动推断出变量/常量的类型
- playground可以快速预览代码校验效果
command + shif + Enter 运行Playground
shift + enter 运行截止到某一行代码

playground

PlaygroundPage.current.liveView = MyViewController()
展示界面

注释

嵌套注释
/*
1
/* 多行注释 */
2
*/
playground注释支持markup语法(与markdown相似)
单行开启markup
//:
多行开启markup
/*:
# 一级标题
*/

markup只在playground中有效

> This is a note
markup
内置跳转不同playground的方法
//:[下一页](@next)
//:[上一页](@previous)

常量

- 只能赋值一次
- 他的值不要求在编译时期确定 但是使用之前必须赋值一次

常量 变量在初始化之前 不能使用

标识符

- 标识符(比如常量名 变量名 函数名) 几乎可以使用任何字符
- 标识符不能以数字开头 不能包含空白字符 制表符  箭头等特殊字符

常见数据类型

数据类型.png
- 整数类型 Int8 Int16 Int32 Int64 UInt8 UInt16 UInt32 UInt64
- 在32bit平台 Int等价于Int32 在64bit平台 Int等价于Int64
- 整数的最值 UInt8.max Int16.min
- 一般情况下 都是直接使用Int即可
- 浮点类型 Float 32位 精度只有6位 Double 64位 精度最少15位

字面量

字符类型的时候必须指定类型名称Character 否则会认为是字符串类型

字符可存储ASCII字符 和 Unicode字符
let char: Character = "3"
浮点数.png

类型转换

字面量可以直接相加 因为数字字面量本身是没有明确的类型

元祖 tuple

let http404Error = (404,"Not Found")
http404Error.0
http404Error.1
let (statusCode,statusMessage) = http404Error
statusCode
statusMessage
let (justTheStatusCode,_) = http404Error
justTheStatusCode
let http200Status = (statusCode:200, statusMessage:"ok")
http200Status.statusCode
http200Status.statusMessage

相关文章

  • 基本运算 流程控制 函数

    ABI OC Swift区别 swiftc 位置 swiftc 操作 对汇编代码进行分析 可以真正掌握编程语言的本...

  • 【Flutter 极速指南】Dart 语言篇

    这篇文章你能学习到: 安装 Hello world 基础语法基本规则关键词变量数据类型 函数 运算 流程控制 类&...

  • 目录

    1 标识符与基本数据类型 2 从控制台输入输出 3 运算符 4 流程控制 5 复杂数据类型 6 函数 7 类 8 ...

  • 《swift从入门到精通》(一):基本运算、流程控制

    基本运算、流程控制[https://blog.csdn.net/weixin_30604651/article/d...

  • MySQL函数

    字符函数 数字运算函数 比较运算符和函数 日期时间函数 信息函数 聚合函数 加密函数 流程函数

  • # shell流程控制语句

    shell流程控制语句 任何编程语言都离不开流程控制语句,其实编程基本上就是掌握了流程控制语句,然后加上函数(或者...

  • go入门(三)

    本文以流程控制、运算等为主。说一下go中基本的语法糖。 运算符 go中的运算符和java中的基本一致,但没有++a...

  • JavaScript进阶学习

    Javascript 使用语法规范 数值类型 运算符 流程控制 函数 数组 字符串在javascript里边,字符...

  • js-流程控制&运算符

    【流程控制】 【运算符】 【循环】

  • matlab基础语法

    matlab中主要是矩阵运算 矩阵赋值 矩阵运算 控制流程 绘图

网友评论

      本文标题:基本运算 流程控制 函数

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