Swift基础01
来源:互联网 发布:广数g90编程实例 编辑:程序博客网 时间:2024/06/03 22:43
Swift基础01
常量和变量的定义
- 用 var 来定义一个变量,用 let 定义一个常量
- 变量或常量的后面接一个 : Int, 指定数据类型
- 在 swift 中,布尔值用的是 true/false
var a: Int = 5 //定义一个Int型变量var b: Float = 6 var c: Double = 5.6 var d: Bool = true //布尔值var e: Bool = false var f = (6, "hello") //定义一个元组变量let aa: Int = 5 //定义一个Int型常量
类型的自动推导
- swift会根据等号右边的值,自动推导变量/常量的类型
- Xcode中按 option + 左鼠标键 : 查看变量/常量的数据类型
- 变量或常量,如果没有初始值,就需要指定数据类型
var bb = 5 //自动推导为Int型var bc = 5.5 //自动推导为Float型let str = "hello, world" //自动推导为String型var dd:Int
没有隐式转换
- swift 不同类型进行运算不会自动执行隐式转换,需要强制转换
var sum = bb + Int(bc) //如果不进行强制类型转换则会报错var sum2 = Double(bb) + bc
if条件语句
- if后面的条件语句,可以省略小括号
- if后面的大括号,一定要加。不管它是否只有一条语句
- swift 没有非零即真的概念,条件语句必须是布尔值或者是条件表达式
let a = 4if a > 4 { print("哟, a 大于 10 哦")} else if a < 5 { print("哟, a 小于 5 哦")} else { print("hello world")}
switch语句
- swift 中的 switch 可以判断任何类型
- case 后面必须有执行语句
- break 可以不写
- case 后面的执行语句不需要加 大括号
- switch 必须覆盖所有条件,不然会报错。如果覆盖不了,可以加个 default
let score = 70//oc 的 switchswitch score { case 60: print("hello") print("爹妈不亲")case 70: print("及格了,ok")case 80: print("优秀")default: print("仍需努力")}
// switch 判断字符串类型let score1 = "70"switch score1 {case "60": print("爹妈不亲")case "70": print("及格了,ok")case "80": print("优秀")default: print("仍需努力")}
// switch 做区间判断// 区间运算符 0..<5: 相当于数学里面的 [0, 5)// 区间运算符 0...5: 相当于数学里面的 [0, 5]let score2 = 80switch score2 { case 0..<60: print("hello") print("爹妈不亲")case 60...80: print("及格了,ok")case 80...100: print("优秀")default: print("仍需努力")}
// 绑定:在条件判断语句中。将需要判断的值 x,赋给一个临时的变量/常量 y。这个过程就是将 x 和 y 绑定。 在后面我们可直接使用 ylet x = 50switch x {case let y where y < 60: //执行此处 print("hello, \(y)") print("爹妈不亲")case let y where y < 80: print("及格了,ok")case let y where y < 100: print("优秀")default: print("仍需努力")}
循环
- for循环
//oc风格的 for 循环for var i = 0; i < 10 ; i++ { //print("I love you")}//用区间运算符做循环的时候, i 不需加加 var 和 letfor i in 0..<10 { print("I love you\(i)")}//如果我们不需要用 i 的值,可以用一个 _ 把 i 忽略掉for _ in 0..<10 { print("I love you")}
- while循环
var a = 5while a > 0 { print("好好听课") a--}
- 类似do…while循环
var b = 5repeat { print("====好好听课") b--} while b > 0
可选值
- 一个变量或常量,可能有值,可能没有值,就叫可选值
- 变量可选值,没有赋值之前,是 nil
- 常量可选值,在没有赋值之前,它是空的,使用它会直接报错
- 在使用可选值之前,需要对可选值,强行解包,给可选值加一个!如果强行解包发现没值,编译器会直接报错。
var a: Int? = 5 //定义变量可选值let b: Int? //定义常量可选值var c = a! + 5
可选绑定
使用可选值时,需要注意可选值是否有值,如果使用了没有值得可选值,会使代码出错
使用可选值的三种方法:
// 1.先判断可选值,是否为 nil,不为nil才使用// 这个方法比较 low,很少用var str: String? = "hello"var age: Int? = 10var str1 = "aa"if str != nil && age != nil{ if age! > 10 { var st2 = str! + str1 //print(st2) }}
//2 .可选绑定//主流写法//可选绑定,就在判断条件语句中,定义一个常量或变量 x,将可选值 y 赋值给这个常量或变量。如果可选值 y 有值,则绑定成功,可以在后面直接使用 x。如果没有值,绑定不成功,做异常处理。//如果需要对多个值进行可选绑定,可以用 , 分隔开//如果想修改被绑定的值 x, 需要用 var。修改了 x。y 不会变//可选绑定还可以接 where 来增加我们的条件判断的功能if var str = str, let age = age where age > 10{ str = "world" print(str) print(str)} else { //异常处理}
//3. guard let/var//guard let 和 if let 逻辑相同,语法相反,绑定成功的逻辑代码需要写在大括号的外面。//guard 的大括号里面,需要我们 return//guard let 可以减少代码的层级func guardlet() { guard let str = str else { return } print("========\(str)")}guardlet()
0 0
- swift课程 01 swift 基础
- 01-Swift 基础
- swift(01)基础学习
- Swift基础01
- Swift-01基础部分
- 【Swift基础】01常量&变量
- Swift教程 swift基础
- swift基础
- Swift 基础
- swift基础
- Swift 基础
- swift基础
- swift基础
- Swift基础
- Swift基础
- swift基础
- swift基础
- Swift基础
- 搭建RHEL实验环境
- MAC 环境下的Lua配置
- java.lang.NoSuchMethodException: org.apache.catalina.deploy.WebXml addServlet
- 转义字符
- JSON入门总结
- Swift基础01
- 线程同步和线程死锁
- shadowsocks
- CodeForces 660D Number of Parallelograms
- 关于CSS常用用法(持续更新)
- 《移动App测试实战》读书笔记
- CodeForces 329B(BFS)
- 【CodeForces】A. Pouring Rain
- 浅谈UML的概念和模型之UML九种图