iOS开发Swift-基础部分

1.常量

let maxNum = 10    //单个常量赋值
let maxNum = 10, minNum = 2     //多个常量赋值用逗号隔开

2.变量

var x = 0.0   //单个变量赋值
var x = 0.0, y = 0.1     //多个变量赋值用逗号隔开

3.类型注解

系统可通过赋初始值进行自动推断。

var name: String   //冒号(:)加空格( )
name = "Hello"   //先注解再赋值

var name, address: String     //多个变量注解

let one: Int = 1     //同时注解和赋值

4.输出

print(name)     //输出一个变量/常量
print("welcome the \(address)")    //输出一串字符加变量,使用转义字符"\"与括号、变量名表示该变量

5.注释

//这是一条注释

/* 这也是
    一条注释 */

/* 这是一个篮子
/* 这是篮子里的苹果 */
    这样方便将有注释的代码注释掉 */

6.分号

平时可加可不加,同一行中有两句话必须加。

let cat = "🐱"; print(cat)

7.整数

Int UInt(最好不用)

8.浮点数

|--------|-----|--------------|-------|
| Double | 64位 | 很大/高精度情况下使用 | 15位小数 |
| Float | 32位 | 对精度要求不高的情况下用 | 6位小数 |

9.Swift语言自带类型安全与类型推断,根据赋值类型推断变量/常量字符类型。

10.字符型字面量

|------|------|---------|
| 十进制数 | | 17 |
| 二进制 | 0b前缀 | 0b10001 |
| 八进制 | 0o前缀 | 0o21 |
| 十六进制 | 0x前缀 | 0x11 |

11.强制转换

let Pi = Double(three) + 0.1415926
let iPi = Int(Pi)  //截断小数,3.14159会变成3 

12.类型别名

typealias Audio = UInt16   
//typealias:类型别名关键字;Audio:别名;UInt16:原名

13.布尔值(Bool)

let a = true
let b = false

14.元组(tuples)

let http404Error = (404,"Not Found")   //这是一个(Int,String)元组
//元组定义
let (Code,Message) = http404Error
//元组分解
print("status is \(Code)")
print("status is \(Message)")
//当只需要这个元组的一部分时,元组半分解
let (Code,_) = http404Error
print("status is \(Code)
//下标分解
print("status is \(http404Error.0)")
//命名分解
let http404Error = (Code: 404, Message: "Not Found")
print("status is \(http404Error.Code)")

15.可选类型(optionals)

let a = "123"
let b = Int(a)  //b是一个可选类型的Int(Int?)

16.nil

类似于java中的null,是一个值,表示值缺失。

17.可选绑定

if var a = Int(b){    //Int(b)为nil或赋值false,if判断为false
    print("true")
    }

18.隐式解析可选类型

|-------------|----------------------------------------------------------------------------|---|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------|
| 可选类型 | option | ? | 可能有值,也可能无值 | Int? |
| 强制解析 | | ! | 如果确定有值则解析值。如果没有值(nil),则强制解析会崩溃 | a! |
| 可选绑定 | 判断是否有值 | | if let a = b{ print("√") }else{ peint("×") } | |
| 自动解析 (隐式解析) | 声明变量时就用"!",使用时会自动解析值,而不需要加"!" 如果它之后可能会成为nil时不要使用隐式解析可选类型!当解析nil时程序会崩溃。 | | //未使用隐式解析时 var dog: String? = "旺财" let cat: String = dog! let fish: String = dog! let monkey: String = dog! //使用隐式解析时 var dog: String! = "旺财" let cat: String = dog let fish: String = dog let monkey: String = dog | |

19.错误处理

可推断运行失败原因,并传播出去

//1.抛出
func AnError() throws{
    //可能有错的函数
}
//2.可能有一个错并打印问题
do{
    try AnError()
    //没有错时运行的函数
    }catch{
        //有错时抛出的内容
        }
//3.可能有两个错并打印问题
do{
    try TwoErrors()
    //没有错时运行的函数
    success()
    }catch ErrorsMessage.oneError{
        //出现第一个错时抛出的内容
        OneReeor()
        }catch ErrorsMessage.twoReeor{
             //出现第二个错时抛出的内容
            TwoError()
            }

20.断言和先决条件

断言和先决条件指在编码时赋予一个必要条件或期望,运行时如果这个条件为true则继续运行,如果为false则终止运行。

断言帮助找到错误假设,仅在调试环境中止。先决条件帮助找到存在的问题,在调试环境和生产环境出问题都会被中止。

21.断言调试

let age = -3
assert(age >= 0, "年龄不能小于0")

assert(条件,"提示")
assert(条件)

断言失败:用于检查条件判断是否完全。

if age > 10{
    print("年龄>10")
    }else if age > 0 {
        print("0<年龄<10")
        }else{
            assertionFailure("有个条件还没判断")
            }

22.强制执行先决条件

一个条件可能为假,但后续运行必须为真。

precondition(index>0,"下标必须大于0")

unchecked模式不执行先决条件。

23.fatalError(_:file:line:)

用于没实现的方法,不会被优化掉,运行到此时程序被中断。

相关推荐
海阔天空_20132 分钟前
Python pyautogui库:自动化操作的强大工具
运维·开发语言·python·青少年编程·自动化
天下皆白_唯我独黑9 分钟前
php 使用qrcode制作二维码图片
开发语言·php
夜雨翦春韭13 分钟前
Java中的动态代理
java·开发语言·aop·动态代理
小远yyds15 分钟前
前端Web用户 token 持久化
开发语言·前端·javascript·vue.js
何曾参静谧27 分钟前
「C/C++」C/C++ 之 变量作用域详解
c语言·开发语言·c++
q567315231 小时前
在 Bash 中获取 Python 模块变量列
开发语言·python·bash
许野平1 小时前
Rust: 利用 chrono 库实现日期和字符串互相转换
开发语言·后端·rust·字符串·转换·日期·chrono
也无晴也无风雨1 小时前
在JS中, 0 == [0] 吗
开发语言·javascript
狂奔solar2 小时前
yelp数据集上识别潜在的热门商家
开发语言·python
blammmp2 小时前
Java:数据结构-枚举
java·开发语言·数据结构