12月16日(火)3コマ目
今日、やったこと
[評価用課題作成]電卓アプリ作成
今日の課題
正解例を挙げておきます。
その1 条件分岐で状態ごとの処理を実行
1つのクラスにて、状態による条件分岐で現在の電卓の状態での処理を行う。
Calcurator.swift
電卓用クラス。
ContentView.swift
画面生成。
その2 オブジェクト指向プログラミング形式
プロトコルを準拠する4つの状態別の構造体を用意。
Calcurator.swift
プロトコル。4つの状態ごとの構造体はこのプロトコルを準拠。
ExtCalcurator.swift
Calcuratorプロトコルに実装を追加。
4つの状態で共通する処理はここで実装。
Calcurator_StateA.swift
「左値入力中」状態に特化したイベント処理構造体。
Calcurator_StateB.swift
「演算子入力直後」状態に特化したイベント処理構造体。
Calcurator_StateC.swift
「右値入力中」状態に特化したイベント処理構造体。
Calcurator_StateD.swift
「=入力直後」状態に特化したイベント処理構造体。
ContentView.swift
画面生成。
calcuratorプロパティは現在の電卓の状態に応じたCalcuratorプロトコル準拠構造体のインスタンスを保持
イベント処理関数の戻り値は新しい状態のインスタンス。このプロパティに代入することで、状態構造体のインスタンスをリレーしていく。
次回は
評価用新課題。