[解決済み] inoutパラメータはいつ使うのか?
2023-08-17 09:12:52
質問
クラスやプリミティブ型を関数に渡した場合、関数内でパラメータに加えられた変更は、クラスの外部に反映されます。これは基本的に
inout
パラメータが行うことになっていることと基本的に同じです。
inoutパラメータの良い使用例とは?
どのように解決するのですか?
inout
は、ローカル変数を変更すると、渡されたパラメータも変更されることを意味します。これがなければ、渡されたパラメータは同じ値のままである。を使うときに参照型を考えてみる。
inout
を使っているときは参照型、使っていないときは値型を考えてみる。
例えば
import UIKit
var num1: Int = 1
var char1: Character = "a"
func changeNumber(var num: Int) {
num = 2
print(num) // 2
print(num1) // 1
}
changeNumber(num1)
func changeChar(inout char: Character) {
char = "b"
print(char) // b
print(char1) // b
}
changeChar(&char1)
良い使用例としては
swap
関数で、渡されたパラメータを変更します。
Swift 3+ ノート
:
Swift 3で起動する
が追加されました。
inout
キーワードは
の後に
の後、型の前に来る必要があります。たとえば、Swift 3+では、現在
func changeChar(char: inout Character)
.
関連
-
[解決済み] Swift Betaのパフォーマンス:配列のソート
-
[解決済み] Swiftの@selector()?
-
[解決済み] フレームワークを使用したiOSアプリがデバイス上でクラッシュ、dyld: ライブラリがロードされない、Xcode 6 Beta
-
[解決済み] Swiftのクラスにおける静的関数/変数とクラス関数/変数?
-
[解決済み】なぜ、Swiftの文字列では、?のような絵文字が奇妙に扱われるのですか?
-
[解決済み] 関数のパラメータとしてクラス型を渡す方法
-
[解決済み] Swift 3でカスタム通知を作成するには?
-
[解決済み] Swiftで失敗しないイニシャライザーを実装するためのベストプラクティス
-
[解決済み] XcodeでFirebase Analyticsをオンにする
-
[解決済み] Swiftの関数パラメータとしてのプロトコルに準拠したクラス
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Swiftがエラーを報告。アボートトラップ:6
-
[解決済み] Swiftで警告を消すには?
-
[解決済み] 小数点以下2桁に切り上げ
-
[解決済み] Swift: switch ケースでオプションの値に対するテストを行う
-
[解決済み] Swiftのif letと論理AND演算子&&の使い分け
-
[解決済み] NSDateを使用して曜日を取得する
-
[解決済み] swift 3.0 Data to String?
-
[解決済み] NSUserdefaultsの配列の保存と読み込みはどのように行うのですか?
-
[解決済み] iOS 9のスワイプ可能なテーブルビューセル
-
[解決済み] Swift 3 GCD API変更後のdispatch_once