4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

お題は不問!Qiita Engineer Festa 2023で記事投稿!

【Swift】引数にある謎の`&`について

Last updated at Posted at 2023-07-14

はじめに

Swiftのコードを読んでいて、関数の引数に謎の&がついていたので調べてみました。

以下のコードを見てください。

func increment(number: inout Int) {
    number += 1
}

var number = 0
increment(number: &number)
print(number) // 1

increment(number: &number)を見ると、引数に&がついています。
これは、inout引数というものです。

inout引数とは

inout引数は、関数内で引数の値を変更することができます。
例のコードを実行すると、increment(number: &number)numberの値を変更していることが確認できます。

inout引数を持つ関数の作り方

inout引数を持つ関数を作るには、引数の型の前にinoutをつけます。

func increment(number: inout Int) {
    number += 1
}

inout引数を持つ関数の使い方

inout引数を持つ関数を呼び出す時は、引数の前に&をつけます。

var number = 0
increment(number: &number)

おわりに

Swiftには便利な機能がたくさんありますね。この記事が参考になったという方は、いいねとフォローしていただけると嬉しいです☺️

参考

4
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?