0Pricing
Swift Academy · レッスン

in-outパラメーターと基本的なエラー処理(throws)

in-outパラメーターで引数を変更し、throws、try、do/catchを使って回復可能な失敗を処理します。

「in-outパラメーターと基本的なエラー処理(throws)」はCoddyKit上の無料Swift Academyレッスンです。 これはレッスン3/3です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはSwift Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Swift Academyコースには全3レッスンが含まれています。

はじめに

このレッスンでは、in-outパラメータ(呼び出し元の変数を変更します)と、throws、try、do/catchを使った基本的なエラー処理について学びます。

inoutの基本

inoutを使うと、関数から呼び出し元の変数を変更できます。呼び出すときは&nameと記述します。

func increment(_ value: inout Int) {
    value += 1   // mutate caller's variable
}
var count = 0
increment(&count)
print("count =", count)  // 1

使用する場面

inoutは必要な場合にだけ使用します。

  • 単純な変更(カウンターなど)に適しています。
  • 明確さとテストのしやすさを優先し、新しい値を返す方法を選びます。

throws + do/catch

失敗する可能性のある関数にはthrowsを付けます。エラーを処理するにはdo/try/catchを使用します。

enum FileError: Error { case notFound, unreadable }

func readFile(named: String) throws -> String {
    if named.isEmpty { throw FileError.notFound }
    return "contents of \\(named)"
}

// Calling a throwing function
do {
    let text = try readFile(named: "notes.txt")
    print(text)
} catch {
    print("Failed:", error)
}

try? と try!

try?はエラーをnil(オプショナル)に変換します。try!はエラーが発生するとクラッシュするため、絶対に問題ないと確信できる場合を除いて避けます。

// try? converts errors to nil (optional)
let maybeText = try? readFile(named: "")
print(maybeText as Any)  // nil

// try! crashes on error—only use when you are sure
// let forcedText = try! readFile(named: "")  // avoid in production

エラーを投げるヘルパー

ヘルパーからエラーを投げることもできます。カスタムエラーには小さなEnumを使用し、必要な場合を除いて生のNSErrorは避けます。

func parseInt(_ s: String) throws -> Int {
    if let n = Int(s) { return n }
    else { throw NSError(domain: "Parse", code: 1) }
}

do {
    let n = try parseInt("10")
    print("n =", n)
} catch {
    print("parse error")
}

inoutに関する質問

確認: パラメータにおけるinoutは何を意味しますか?

まとめ

まとめ: 直接変更する場合はinoutを必要な場合にだけ使用します。失敗はthrows、try、do/catchで処理し、オプショナルの結果にはtry?を優先し、本番環境ではtry!を避けます。

よくある質問

「in-outパラメーターと基本的なエラー処理(throws)」レッスンは無料ですか?

はい。「in-outパラメーターと基本的なエラー処理(throws)」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Swift Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Swift Academyコースには全3レッスンが含まれています。

「in-outパラメーターと基本的なエラー処理(throws)」で何を学びますか?

in-outパラメーターで引数を変更し、throws、try、do/catchを使って回復可能な失敗を処理します。 ブラウザで直接実行するハンズオンコードでSwift Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Swift Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのSwift Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/3です。

「in-outパラメーターと基本的なエラー処理(throws)」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このSwift Academyレッスンでコードを書いて実行できますか?

はい。すべてのSwift Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 関数の定義、パラメーター、ラベル、デフォルト値・可変長引数
  2. 戻り値とタプルによる複数の戻り値
  3. in-outパラメーターと基本的なエラー処理(throws)
← Swift Academyに戻る