入出力パラメータ
inout
SWIFTでは、関数のパラメータはConstantなので、基本的には変更できません.ただし、関数でパラメータの値を変更したい場合は、パラメータのData Typeの前にinoutキーを付けることができます.
call by reference
inoutパラメータは次のとおりです.
に注意
正式なドキュメントでは、inoutパラメータでは、関数を関数の範囲外にする方法(関数の別の方法で関数の役割を関数の範囲外にする方法)について説明します.うっかりするとSWIFTのメモリ安定性に反します.
var global = "Global Variable"
func function(_ param: inout String) {
param += global
}
function(&global)
// error: Execution was interrupted, reason: signal SIGABRT.
グローバル変数をinoutパラメータとして渡し、関数でグローバル変数を同時に使用すると、読み取りと書き込みが同時に実行され、実行時にエラーが発生します.したがって,inoutパラメータとして渡される変数には関数内でアクセスできない.
Reference
この問題について(入出力パラメータ), 我々は、より多くの情報をここで見つけました https://velog.io/@kkang/In-Out-매개변수テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol