型推論の仕組み
Swiftがコンテキストから型を推論する方法を確認します。
「型推論の仕組み」はCoddyKit上の無料Swift Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはSwift Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Swift Academyコースには全4レッスンが含まれています。
型推論とは
Swiftは、式のコンテキストから値の型を推論できます。型を明示的に記述する必要がない場合が多くあります。
let count = 42
let name = "Swift"
print(type(of: count))
print(type(of: name))リテラルからの推論
整数リテラルからは Int が推論され、小数リテラルからは Double が推論され、引用符で囲まれたリテラルからは String が推論されます。
let a = 10
let b = 3.14
let c = "hello"
print(type(of: a), type(of: b), type(of: c))イニシャライザからの推論
イニシャライザを呼び出すと、その結果の型によって変数の型が推論されます。
let pi = Double.pi
let flag = Bool(true)
print(type(of: pi))
print(type(of: flag))関数の戻り値からの推論
関数呼び出しの結果を代入した変数には、その関数の戻り値の型が適用されます。
func makeGreeting() -> String {
return "Hi"
}
let g = makeGreeting()
print(type(of: g))コレクションでの推論
配列リテラルと辞書リテラルでは、中の値から要素の型が推論されます。
let nums = [1, 2, 3]
let pairs = ["a": 1, "b": 2]
print(type(of: nums))
print(type(of: pairs))双方向の推論
Swiftは両方向から推論します。値から変数へ推論するだけでなく、宣言された型からリテラルへも推論します。
let x = 5 // Int inferred from literal
let y: Double = 5 // literal adapts to Double
print(type(of: x), type(of: y))式全体にわたる推論
コンパイラは式全体の型をまとめて解決し、すべての演算が有効になる型を選択します。
let result = 2 + 3 * 4
print(result)
print(type(of: result))記述量を減らす型推論
型推論によってコードをすっきり保てます。リテラルがすでに String を示している場合、let names: [String] = [...] と書くのは冗長です。
let names = ["Ada", "Bob", "Cleo"]
print(names.count)型推論に失敗する場合
コンパイラが単一の型を決定できない場合はエラーになり、型注釈が必要です。空のコレクションは典型的な例です。
let empty: [Int] = []
print(empty.isEmpty)型推論は静的に行われる
型推論はコンパイル時に行われます。一度推論された型は固定され、Swiftは動的型付けではありません。
var n = 10
// n = "text" // would be a compile error
n = 20
print(n)型推論とパフォーマンス
型推論による実行時のコストはありません。コンパイラはバイナリを生成する前に型を解決するため、推論を使ったコードは型を注釈したコードとまったく同じ速さで実行されます。
let total = (1...100).reduce(0, +)
print(total)確認テスト
型推論の理解度をテストしてください。
まとめ
型推論により、Swiftはコンパイル時に、リテラル、イニシャライザ、戻り値、周囲のコンテキストから型を推論できます。実行時のコストなしで記述量を減らせますが、単一の型を決定できない場合(空のコレクションなど)は推論に失敗します。
let a = 1
let b = 2.0
let c = "x"
print(type(of: a), type(of: b), type(of: c))AI チューターと学ぶ Swift — 無料
ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。
- コース
- 122
- レッスン
- 409
よくある質問
「型推論の仕組み」レッスンは無料ですか?
はい。「型推論の仕組み」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Swift Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Swift Academyコースには全4レッスンが含まれています。
「型推論の仕組み」で何を学びますか?
Swiftがコンテキストから型を推論する方法を確認します。 ブラウザで直接実行するハンズオンコードでSwift Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Swift Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのSwift Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「型推論の仕組み」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このSwift Academyレッスンでコードを書いて実行できますか?
はい。すべてのSwift Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。