-
グローバル変数を使用する方法:
var hasRun = false func runOnce() { guard !hasRun else { return } // 実行したいコード hasRun = true }
この方法では、グローバル変数
hasRun
を使用して、関数が初めて実行されたかどうかを追跡します。関数の最初でhasRun
の値をチェックし、既に実行されている場合は関数を終了します。実行したいコードは、このチェックの後に記述します。関数が再度呼ばれた場合、hasRun
の値はtrue
となり、実行されません。 -
クロージャを使用する方法:
var closure: (() -> Void)? func runOnce() { guard closure == nil else { return } // 実行したいコード closure = {} }
この方法では、オプショナルなクロージャ
closure
を使用して、関数が初めて実行されたかどうかを追跡します。関数の最初でclosure
の値をチェックし、既に実行されている場合は関数を終了します。実行したいコードは、このチェックの後に記述します。関数が再度呼ばれた場合、closure
には空のクロージャが代入され、実行されません。 -
静的プロパティを使用する方法:
class RunOnce { static var hasRun = false static func runOnce() { guard !hasRun else { return } // 実行したいコード hasRun = true } }
この方法では、静的プロパティ
hasRun
を使用して、関数が初めて実行されたかどうかを追跡します。関数の最初でhasRun
の値をチェックし、既に実行されている場合は関数を終了します。実行したいコードは、このチェックの後に記述します。関数が再度呼ばれた場合、hasRun
の値はtrue
となり、実行されません。
これらの方法を使用して、関数を一度だけ実行することができます。選択する方法は、特定の状況や要件によって異なるかもしれません。