Hello World
- 在Swift代码中,不用编写main函数,Swift会将全局范围内的首句可执行代码作为程序入口
- 一句代码尾部可以省略分好(;)多句代码写到同一行时必须使用分好(;)隔开
- 用
var
定义变量,let
定义常量, 编译器能自动推断出常量/变量的类型,所以常量/变量的类型可以省略
import Foundation
// 第一句可执行代码,便是程序的入口
print("Hello, World!")
var x = 11 // 定义一个变量
let y = 10 // 定义一个常量
var z = x+y
print(z)
print("x+y的值等于 \(z)")
let a = 12; let b = 13
print("a+b的值等于 \(a+b)")
Playground
- Playground 可以快速预览代码效果
- Command + Shift + Enter :运行整个Playground
- Shift + Enter :运行截止到某一行
let a = 10
let b = 11
let c = a+b
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
let imageView = UIImageView(image: UIImage(named: "logo"))
PlaygroundPage.current.liveView = imageView
let vc = UITableViewController()
vc.view.backgroundColor = UIColor.lightGray
PlaygroundPage.current.liveView = vc
Playground 用法:
1、可以在当前工程中创建多个page,分别运行,互不干扰
2、下面的Sources 4能够被sources 1,2,3使用,但是page01,02,03,里面的sources不能互用
注释
- Playgound的注释支持markup语法
- 开启markup渲染效果
Editor——>Show Rendered Markup
- 注意:Markup只在Playground中有效
// 单行注释
/*
多行注释
/*
多行注释
*/
markup语法
## 二级标题
### 三级标题
*/
//: # 一级标题
/*:
# 学习Swift
## 基础语法
- 变量
- 常量
## 面向对象
1. 类
2. 属性
3. 方法
## 汇编分析
[苹果官方](https://www.apple.com)
*/
//: [下一页](@next)
//: [上一页](@previous)
常量、变量
- 所谓常量,只能赋值一次
- 变量,能够被多次赋值
- 它的值不要求在编译时期确定,但是必须在使用之前赋值一次
var num = 10
num += 20
num += 30
let age = num
print(age)
func getAge() -> Int {
return 10
}
let age = getAge()
print(age)
- 常量、变量在初始化之前,不能使用
let age: Int
let height: Int
print(age)
print(height)
// 错误提示 Constant 'age' used before being initialized
- 下面代码,是错误的,提示没有确定类型,不能赋值
let age
age = 10
//错误提示 Found an unexpected second identifier in constant declaration; is there an accidental break?
标识符
- 标识符(比如常量名、变量名、函数名)几乎可以使用任何字符
- 标识符不能以数字开头,不能包含空白字符、制表符、箭头灯特殊字符
func 🐂🍺() {
print("标识符")
}
🐂🍺() // 标识符
func ->test() {
print("这是啥")
}
->test()
编译会报出,不是期望的标识符
常见数据类型
- 整数类型:Int8,Int16,Int32,,Int64,UInt8,UInt16,UInt32,,UInt64
- 在32bit平台:Int等价于Int32,Int等价于Int64
- 整数的最值:UInt8.max、Int16.min
- 一般情况下,都是直接使用Int即可
- 浮点类型:Float,32为,精度只有6位,Double,64位,精度是少15
字面量
- true 、 “swift 学习”, “a” 都是字面量
//布尔
let bool = true
// 字符串
let string = "Swift 学习"
//字符
let char: Character = "a"
类型转换
//整数转换
// 直接相加会报错误提示:Binary operator '+' cannot be applied to operands of type 'UInt16' and 'UInt8'
let int1: UInt16 = 2000
let int2: UInt8 = 1
let int3 = int1 + UInt16(int2)
//整数、浮点数转换
let int = 3
let double = 0.14159
let pi = Double(int) + double
let intpi = Int(pi)
//字面量可以直接相加,因为数字字面量本身没有明确类型
let result = 3 + 0.1415
元组
let error = (404, "Not Found")
error.0
error.1
let (code, message) = error
//忽略
let (code, _) = error
let http200 = (code: 200, message: "OK")