网上找到了大神讲解的Swift2.0基础版
根据 视频 整理出 有关swift2.0的基础 和大家分享 也提醒自己 要学好它 打算以后用 swift开发
本笔记在playground中进行^ ^
一. 新手入门
/* 1.hello swift */
print("hello world,hello swift!")
print("你好")
/* 2.常量与变量 */
// 常量:基本上或可预见的期间内,恒定不变的量,
// let
let 北京到上海的距离 :Int
北京到上海的距离 = 1500
let 地球到月亮的距离 = 38_0000 // “_” 代表分位
// 变量:可主动变更或可预计期间内自有规律或无规律变动
// var
var 上证指数 :Int
上证指数 = 4012
上证指数 = 3800
var 出行目的地 :String
出行目的地 = "三亚"
出行目的地 = "哈尔滨"
出行目的地 = "外滩"
var 用电度数 = 200
var 学习目标 = "到苹果公司做ios高级开发工程师"
学习目标 = "到大城市找一份ios开发工作"
// 思考:常量与变量的关系
let 国内搜索引擎老大 = "百度"
// 代码注释 : 单行/多行注释
// 定义了一个常量 课程名,用于保存课程名称
let 课程名 :String
/*
注释第一行
注释第二行
注释第三行
*/
// 正确使用常量与变量
// 总是优先使用变量;
/* 3.值的类型 */
/* 整型 */
// 整型 Integer 正数和0称为 Unsigned 负数称为 Signed
// Int 跟在变量名之后 用冒号分隔
var x :Int
// 介于2的正负次方之间
// Int8 Int16 Int32 Int64
Int.max // 2^64-1
Int8.max // 2^8-1
INT8_MAX
Int8.min // -2^8
UInt8.max // 0到255
// swift默认Int 只鼓励你使用Int 值的类型首字母大写
var y = 999999966666666666
y = -12445345
/* 浮点型(小数型) */
// 单精度Float 32位的浮点数,精度6位
let a :Float
a = 3.145926
// 双精度Double 64位的浮点数,精度15位
let b :Double
b = 3.14159265732
// swift默认是Double 只鼓励你使用Double
let c = 3.141592657321234
// 超过Double范围的值被视为 无穷
let aaa = 21452871470124612417451246124710241294521451264129041246128451246120747129461249.125e128621712072146219461289412974121241241284
// 负无穷
-Double.infinity
// Not a Number
Double.NaN
/* 4.类型安全 */
// swift是”类型安全“语言 会提示出错
// 类型推断
let 火车乘客1 = "Micky"
/* 5.数字字面量 */
// 整数字面量
// 十进制
10
0
-100
// 二进制 前缀0b
0b10
0b11
// 十六进制 前缀0x 一遍内存地址用16进制
0xFF
// 浮点数字面量
// 十进制
3.1415e100
// 格式化(补零 千分位 万分位)
60
05
1_000_000_000_000.0000_001
/* 6.数值类型转换 */
// 变量与字面量 不同
let a1 :UInt8 = 250
UInt8.max
// 如果需要四则运算 前提:小转大(范围/精度)
let x1 = 3
let y1 = 0.14
let z1 = Double(x1) + y1
/* 整型与浮点型转换 */
// 整型转浮点型(精度增加)
let r = 5
let p = Double(r)
p
// 浮点型转整型(小数被截断) 会丢失信息
let u = 1.414
let w = Int(u)
w
/* 7.类型别名 */
// 关键字 typealias 优点:更直观 一般不给系统名字起别名
typealias 整型 = Int // 给系统的Int起了一个别名 叫 整型
typealias 文本 = String
/* 8.布尔类型 */
// 布尔型:Bool 用来表示逻辑上的真或假 通常用于判断条件是否成立
// 只有两个值 true false
var 开关是否打开 = false
/* 9.元组 */
// 多个值的随意组合 临时使用
// 圆括号内 各个值用逗号分开
("micky",300,"黄钻",4)
// 定义前 值前可以加前缀 已冒号分开
let mickytaobao = (user: "micky", account: 300, title:"黄钻", level: 4)
// 要获取其中的某个值 用序号或前缀
mickytaobao.title
mickytaobao.3
// 用于同时定义多个变量 或给多个变量同时赋值
var (a2,b2,c2) = (3,4,5)
a2
b2
c2
// 用于多个变量交换值
(a2,b2,c2) = (b2,c2,a2)
a2
b2
c2
/* 10.可选类型 */
// optional 代表可能有值的情况。紧接原类型后加问号 ?
// 如:用户资料的选填部分,如地址等
// optional
var address : String?
address
// nil 代表变量中"值缺失"的情况 即可选变量的默认值
// 把一个可选变量“重置”
var sex :Bool? = false
sex = nil // 前提是sex为可选类型 才可以重置
/* 11.可选判断和可选拆包 */
// 可选判断 使用if语句判断可选变量是否有值(与nil比较)
var sex1 : Bool? = true
if sex1 == nil {
print("没有选择性别")
} else {
print("用户选择了性别")
}
// 可选拆包 把可选变量中的值解压出来 在变量后加感叹号!
// 前提是 可选变量 一定有值才可以
if sex1! == true {
print("男性")
} else {
print("女性")
}
/* 12.可选绑定和绑定判断 */
// 可选绑定 将可选判断 可选拆包 “安全”组合在一起
// 如果可选变量有值 则将值保存于一个临时变量,可用if let 语句进行检查
// 格式 if let 临时常量 = 可选变量 { 语句 }
var sex2 : Bool? = false
if let sex = sex2 {
print(sex) // sex 可以和sex2 取一样的名字
} else {
print("没有选择性别")
}
// 多重绑定 一次可以对多个可选变量进行绑定 只需在绑定语句上用逗号分隔
var addr:String? = "上海市"
if let sex = sex2, addr = addr {
print(sex, addr)
} else {
print("用户性别和地址不完善")
}
// 绑定判断 加上where语句可以对绑定的结果进行判断
if let sex = sex2, addr = addr where !sex && addr == "上海市" {
print(addr,"的美女包邮哦")
} else {
print("用户性别和地址不完善")
}
/* 13.有值可选类型 */
// 在变量类型后加感叹号
var 手机号 : Int!
手机号 = 18888888888
手机号
// 如果不确定是否有值 则用常规可选类型
/* 13.断言 */
// 程序继续运行必须满足的条件达不到 中断运行并提示用户以便调试
// 方法名assert
// 一般用于开发过程中 检查一些必须的条件
var isNetwork : Bool = true
assert(isNetwork, "网络不通")