import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
demo4()
}
/**
提示:可选项是所有 OC 的程序员刚接触 Swift 时候,最头疼的问题!
- 1. 明确可选项的概念!
- 2. 实际开发中,借助 Xcode 智能提示,帮助修改!
- 3. 每次修改,都要思考为什么!
*/
func demo4() {
let urlString = "http://www.baidu.com/中文"
// 注意:构造函数如果有 `?` 表示不一定能够创建出对象
let url = NSURL(string: urlString)
print(url)
// 注意:如果参数中,没有 ? 表示必须要有值,如果为 nil,就崩!
if url != nil {
let request = NSURLRequest(URL: url!)
print(request)
}
}
// 可选项:一个变量,可以为本身的类型,也可以为 nil
func demo3() {
// 定义变量/常量如果需要指定类型 : 类型 的方式指定准确的类型
let x: Double = 20
print(x + 1.5)
// 可选项 使用 ? 定义
// y 可以是一个整数/也可以是 nil,如果是变量,默认是 nil
// 注意:可选项在输出的时候,会提示 `Optional`
var y: Int? //= 10
print(y)
// * 可选项不能直接计算
// ! - `强行解包 unwrapping` - 程序员承诺 y 一定有值,如果没有,崩给我看!
// unexpectedly found nil while unwrapping an Optional value
// 每次写 ! 的时候,都需要程序员思考,是不是有可能为 nil!
print(y! + 20)
}
func demo2() {
// 自动推导 - 会根据设置数值的右侧代码,推断变量/常量的类型
// 但是:在 Swift 中,任何时候,都不会做隐式转换
// 任何两个类型不同的变量或者常量不允许直接计算!- Swift 是一个类型要求异常严格的语言!
// 整数默认是 Int -> 64位整数 long
let x = 20
// 小数默认是 Double -> 双精度的小数,OC 中使用 CGFloat 比较多,浮点数
let y = 1.5
let r1 = x + Int(y)
print(r1)
let r2 = Double(x) + y
print(r2)
}
// 基本使用
func demo() {
// let 定义常量 - 一旦设置数值,不允许修改
// var 定义变量 - 可以修改
// 问题:let & var 如何选择,尽量用 let,必须要修改的时候,再用 var,程序更安全
let x = 20
// x = 30
var y = 30
y = 80
print(x + y)
// 视图实例化之后,并没有修改指针地址
let v = UIView(frame: CGRect(x: 10, y: 10, width: 100, height: 100))
// 只是在修改属性
v.backgroundColor = UIColor.redColor()
}
}
常量和变量
最新推荐文章于 2019-08-02 17:42:32 发布