加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Swift2.0学习笔记(整理版)

发布时间:2020-12-14 07:09:41 所属栏目:百科 来源:网络整理
导读:网上找到了大神讲解的Swift2.0基础版 根据 视频 整理出 有关swift2.0的基础 和大家分享 也提醒自己 要学好它 打算以后用 swift开发 本笔记在playground中进行^ ^ 一. 新手入门 /* 1.hello swift */print("hello world,hello swift!")print("你好")/* 2.常量

网上找到了大神讲解的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,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,"网络不通")

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读