func demo () {
//1. 定义变量 var, 定义之后,可以修改
//2. 常量 let, 定义之后,不能修改
/*
let x = 10
x = 20 //这样写会提醒报错
*/
//自动推导,变量/常量的类型会根据右侧的代码执行的结果,推导对应的类型
// 热键 option + click/鼠标左键点击 变量名/常量名
//Int 整数 // (OC中是NSInteger)
//小数 是 Double 精度高 (OC 中的是 CGFloat)
let y = 10
let v = UIView()
print(y)
print(v)
}
func demo1() {
//在Swift 中 对类型要求异常严格
// **任何不同类型的数据之间,不允许直接运算**
// 不会做任何的隐式转换, 所有的类型确定,都要有程序员负责
let x = 10
let y = 10.5
print(x + y) //这样写会报错,类型不相同
// 1. 将 y 转化成 Int 通过 Int() 结构体
// OC 中的写法 (int)y => 类型强转
print( x + Int(y))
// 2. 将 x 转化成 Double 通过 Double() 结构体
print( Double (x) + y)
//在 Swift 中 结构体的使用频率非常高
//包括 基本的数据类型 都是用结构体
//不存在 基本的数据类型 都是 结构体
}
func demo2() {
/* 如果 需要 指定变量/常量的的 类型,
也可指直接使用 let x : 类型 = 值
提示: 在 Swift 开发中,极少使用直接类型,通常都是自动推导!!!
*/
let x:Double = 10
let y = 10.5
//let z: Double = "abc" //报错
print( x + y)
}
补充:
override func viewDidLoad() {
super.viewDidLoad()
//Swift 方法的调用
demo()
demo1()
/*
// 关于 Var 和 Let 的选择
// 一般的 不可变的 是比较安全的 ,在需要变化的时候 在改成Var
var x = 10
let y = 20
print(x + y)
// Variable 'x' was never mutated; consider changing to 'let' constant
// 变量的 X 的值 没有被修改建议改为 let
*/
let v = UIView()
//这里用 let 是因为 这里修改的 是v 的属性,并没有修改 v 的指针 地址!!!
v.backgroundColor = UIColor.red
}