0
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 3 years have passed since last update.

何となく理解するSwiftのアンダースコア

Posted at

はじめに

Swiftをやっていて「何やねんこれは」となり、最初は放置していましたが、
最近何となしにわかり始めたので書きました。

値の破棄

Swiftでは変数名にアンスコを使用することで代入する値を破棄することができます。

例えば、nilチェックするけど別にそれ自体を何か他で使用することがないときとか。
for-inで回すけど特にループ変数は使うことがないとか、そんなときに使います。
以下、SceneDelegate.swiftに初期で記されてあるものです。

guard let _ = (scene as? UIWindowScene) else { return }

ダウンキャストのチェックはするけど以降で別に使用しないので、アンスコで破棄しています。
とりあえず、変数名にアンスコを見かけたら「他のところで使わんのやね」でおkと思います。

引数名の省略

Swiftでは関数を呼ぶ際には通常ラベル名もしくは引数名を記す必要がありますが、
アンスコをラベルに使用することで値のみの記載で呼び出せるようになります。

// 引数名のみ
func sumNum(x: Int, y: Int) -> Int {
	return x + y
}

sumNum(x: 1, y: 2) // 3
// ラベル
func sumNum(num1 x: Int, num2 y: Int) -> Int {
	return x + y
}

sumNum(num1: 1, num2: 2) // 3
// アンスコ
func sumNum(_ x: Int, _ y: Int) -> Int {
	return x + y
}

sumNum(1, 2) // 3

おわりに

まだまだ理解不足なところだらけなので、コメント欄で補記していただいたり、
追加のリクエストくださると嬉しいです。

0
1
0

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
0
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?