Jacky's blog
首页
  • 学习笔记

    • web
    • android
    • iOS
    • vue
  • 分类
  • 标签
  • 归档
收藏
  • tool
  • algo
  • python
  • java
  • server
  • growth
  • frida
  • blog
  • SP
  • more
GitHub (opens new window)

Jack Yang

编程; 随笔
首页
  • 学习笔记

    • web
    • android
    • iOS
    • vue
  • 分类
  • 标签
  • 归档
收藏
  • tool
  • algo
  • python
  • java
  • server
  • growth
  • frida
  • blog
  • SP
  • more
GitHub (opens new window)
  • iOS 学习开发指南
  • 调研

  • 其他

    • iOS术语
    • swift语法
      • 基础
        • 参数标签
        • in-out 关键字
        • & 关键字
    • oc语法
    • 原理
    • 项目构建
    • iPhone技巧
    • ui
    • pod
    • xcode的使用
  • 《iOS》
  • 其他
Jacky
2023-10-08
目录

swift语法

# 基础

# 参数标签

// 在这个函数中, than 是参数标签, 它用于在函数调用时提供更多的上下文和可读性。number 是参数名称, 它是函数内部用来引用传递给函数的整数值的名称。Int 表示参数的类型, 即函数接受一个整数作为参数
func oneMore(than number: Int) -> Int {
    return number + 1
}


var myNumber = 1

// than 是参数标签, myNumber 是传递给函数的参数名称。这有助于使代码更易读懂, 尤其是在函数有多个参数时
myNumber = oneMore(than: myNumber)
print(myNumber)
1
2
3
4
5
6
7
8
9
10
11

如果您愿意, 也可以省略参数标签, 函数调用会变得更加简洁, 但通常会失去一些可读性

# in-out 关键字

in-out 参数是 Swift 中的一种参数类型, 它允许函数修改调用者传递给该函数的参数的值。通常, 函数内的参数是常量, 这意味着您不能在函数内修改它们的值。但是, 如果将参数声明为 in-out, 函数可以修改该参数的值, 并且这些更改将在函数调用后保持有效

要声明 in-out 参数, 您需要在参数类型前面加上 inout 关键字。这是一个示例:

func swapTwoInts(_ a: inout Int, _ b: inout Int) {
    let temp = a
    a = b
    b = temp
}

var x = 1
var y = 2

swapTwoInts(&x, &y)

print("x is now \(x), and y is now \(y)")
1
2
3
4
5
6
7
8
9
10
11
12

在这个示例中, swapTwoInts 函数接受两个 in-out 整数参数 a 和 b。通过使用 & 符号, 我们将 x 和 y 变量传递给函数, 使函数能够修改它们的值。函数内部实现了一个经典的交换两个整数值的算法

需要注意的是, in-out 参数必须具有可变的存储属性, 例如变量, 而不是常量。此外, in-out 参数不能有默认值, 它们通常不能是可选类型, 并且它们不能用于不逃逸的闭包

使用 in-out 参数时要小心, 因为它们会更改原始值, 可能会导致复杂的代码行为。通常情况下, 最好避免使用 in-out 参数, 而是使用返回值来传递修改后的值

# & 关键字

在 Swift 中, & 符号用于多种不同的上下文, 它的含义取决于它的使用方式。以下是 & 符号的一些常见用途:

  1. 引用参数(In-Out Parameters): 在函数或方法中, 你可以将参数标记为 in-out, 以允许函数修改传递给它的参数。这时, 你需要在参数前面加上 & 符号, 表示你要传递参数的引用。例如:
func increment(_ number: inout Int) {
    number += 1
}

var myNumber = 5
increment(&myNumber) // 这里需要使用 & 符号传递参数的引用
1
2
3
4
5
6
  1. 取地址(Address Of): 在某些情况下, 你可能需要获取一个变量或常量的内存地址。你可以使用 & 符号来获得它。例如:
var someValue = 42
let pointerToValue = &someValue // 获取 someValue 的内存地址
1
2
  1. 位操作(Bitwise Operations): 在位操作中, & 表示按位与运算, 用于比较两个二进制值的每一位, 只有当两者都为 1 时结果才为 1。例如:
let a: UInt8 = 0b00101010
let b: UInt8 = 0b10110000
let result = a & b // result 的值为 0b00100000
1
2
3
  1. 逻辑与(Logical AND): & 也可以用作逻辑与运算符, 用于组合布尔表达式中的条件。例如:
if condition1 && condition2 {
// 如果 condition1 和 condition2 都为 true, 则执行此块
}
1
2
3

这些是 & 符号在 Swift 中的一些常见用途, 其含义会根据上下文的不同而变化

上次更新: 2024/12/01, 17:07:39
iOS术语
oc语法

← iOS术语 oc语法→

最近更新
01
npx 使用指南
10-12
02
cursor
09-28
03
inspect
07-20
更多文章>
Theme by Vdoing | Copyright © 2019-2025 Jacky | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式