Swift二 一: 区间运算符 二: switch case语句 三: 函数 (内联函数 函数重载 嵌套函数)

一: 区间运算符
二: switch case语句
三: 函数 (内联函数 函数重载 嵌套函数)

一 区间运算符
let names = ["a", "b","c","d"]
// 1 闭区间运算符
    for i in 0...3 {
      print(name[I])
    }

// 2 半开区间运算符
a..
二 switch case语句

对比oc

1 switch case语句不需要写break,也不会贯穿
2 想要贯穿加fallthough
3 不需要写{},但是case后最少要有一句
4 所有case都处理了, 不需要加default
5 default里面需要有break, 因为最少要有一句话, default也不例外

基础用法


截屏2022-04-12 下午3.58.14.png

截屏2022-04-12 下午3.59.29.png

截屏2022-04-12 下午4.01.18.png

可以匹配区间 匹配元组


截屏2022-04-12 下午4.08.00.png

复合条件 就是case同时可以有多个条件, 支持string character


截屏2022-04-12 下午4.08.40.png

值绑定 外面的值case可以用


截屏2022-04-12 下午4.11.14.png

where case可以加条件 for循环也可以加条件


截屏2022-04-12 下午4.14.23.png

截屏2022-04-12 下午4.14.52.png

截屏2022-04-12 下午4.14.56.png

标签语句 ???


截屏2022-04-12 下午4.18.22.png
三: 函数

函数定义
Swift 定义函数使用关键字 func。
定义函数的时候,可以指定一个或多个输入参数和一个返回值类型。
每个函数都有一个函数名来描述它的功能。通过函数名以及对应类型的参数值来调用这个函数。函数的参数传递的顺序必须与参数列表相同。
函数的实参传递的顺序必须与形参列表相同,-> 后定义函数的返回值类型。
语法

func funcname(形参) -> returntype
{
   Statement1
   Statement2
   ……
   Statement N
   return parameters
}

隐式返回 就是函数体就一句不用写return了


截屏2022-04-12 下午4.21.52.png

返回元组 实现多返回值


截屏2022-04-12 下午4.23.15.png

函数文档注释


截屏2022-04-12 下午4.25.00.png

函数重命名, 省略


截屏2022-04-12 下午4.28.52.png

函数默认参数值


截屏2022-04-12 下午4.30.45.png

可变参数


截屏2022-04-12 下午4.40.43.png

截屏2022-04-12 下午4.47.42.png

截屏2022-04-12 下午4.51.08.png

输入输出参数 用inout 修改函数外面变量的值


截屏2022-04-12 下午4.59.38.png
NSString * str = @"哈哈";
NSLog("内存地址:%p, 指针地址:%p", str, &str);

函数重载 非重写
规则 1 函数名相同, 2 参数个数不同/ 参数类型不同/参数标签不同


截屏2022-04-12 下午6.39.15.png

截屏2022-04-12 下午6.39.28.png

函数重载注意点


截屏2022-04-12 下午5.15.47.png

内联函数 @inline 默认release模式就是开启内联函数

func test(){
  print("哈哈")
}
test() 
// 开启内联函数, 即test() 等价于调用 这句print("哈哈")
调用函数时候直接执行了函数的函数体
这样减少了调用函数的开销,开辟和回收栈空间
截屏2022-04-12 下午5.20.54.png

1 函数体比较长
2 包含递归调用
3 包含动态派发(oc调用)
以上函数不会触发内联函数


截屏2022-04-12 下午7.03.28.png

函数类型 变量中的函数类型, 作为参数, 返回值

截屏2022-04-12 下午5.37.37.png

截屏2022-04-12 下午5.40.36.png

截屏2022-04-12 下午5.42.42.png

typealise 别名 用这个标识符重新起名字


截屏2022-04-12 下午5.46.43.png

嵌套函数


截屏2022-04-12 下午5.48.42.png

你可能感兴趣的:(Swift二 一: 区间运算符 二: switch case语句 三: 函数 (内联函数 函数重载 嵌套函数))