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

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

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

// 2 半开区间运算符
a..<b 代表  a<=值<b
    for i in 0..<3 {
      print(name[I])
    }

// 3 单侧区间
names[2...] // 2~3
names[...2] // 0~2
names[..<2] // 0~1

// 4 区间变量
let range = ...5 // -负无穷 到5
range.content(7)  false // 判断是否包含7

// 5区间可以是Int 也可以是字符串
let range = "a"..."z"// 打印字符串, 注意没指定类型就是字符串

// 6间隔区间符方法
let hour = 11
let hourInterval = 2
 从4开始 到11 间隔2
for tickMark in stride(from: 4, through: hour, by:hourInterval) {
    print(tickMark)
}
// 打印  4 6 8 10
二 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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • private和fileprivate的区别[https://www.jianshu.com/p/2a9a94d4...
    Peanut_S1阅读 326评论 0 1
  • 一、Enum 1.1 枚举的基本用法 Swift语言中使用enum关键字来进行枚举的创建。 上面的代码创建了一个姓...
    常在士心阅读 540评论 0 2
  • 1、Swift对比Objective-C的优缺点? 优点: swift是**类型安全的语言,注重安全,OC注重灵活...
    年轻就要活出样阅读 449评论 0 0
  • 用到的组件 1、通过CocoaPods安装 2、第三方类库安装 3、第三方服务 友盟社会化分享组件 友盟用户反馈 ...
    SunnyLeong阅读 15,023评论 1 180
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 13,719评论 2 59

友情链接更多精彩内容