投稿

10月, 2023の投稿を表示しています

10月25日(水)3コマ目

イメージ
今日、やったこと 構造体の練習問題(前回のつづき) クラス(おもにプロパティ) 今日のホワイトボード 構造体の練習問題(前回のつづき) 前回出した構造体の練習問題の正解例をあげておきます。 3-1 3-2 3-3 クラス 基本的にはJavaやC#のクラスと同じと思ってもらえれば。 ただ、機能がいろいろと追加されているので注意。 イニシャライザ 要はコンストラクタ。 ただし、JavaやC#のようにオーバーロード(引数の数、型の違いで複数定義)できない。 その代わりコンビニエンスイニシャライザがある。 いずれにしてもイニシャライザでの処理は以下の順。 ①まずはプロパティの初期化  コンビニエンスイニシャライザの場合は、指定イニシャライザの呼び出し。  なお、指定イニシャライザは    self.init(引数) で呼び出す。 ②その他の処理   すべてのプロパティが初期化できれば、メソッドを呼び出すことも可。  逆に、プロパティの初期化が完了していない段階でメソッドを呼び出すとコンパイルエラー。 図 イニシャライザでの処理の順 インスタンスに紐づく、クラスに紐づく Javaのインスタンスフィールド、クラス変数で話をしました。 Swiftでも インスタンスプロパティはインスタンスに紐づく クラスプロパティ、タイププロパティはクラスに紐づく とJavaと同じ。 図 インスタンスに紐づく、クラスに紐づく(Javaの場合) クラスプロパティとタイププロパティの違い 両方ともクラスに紐づく。 タイププロパティは 変数的なストアドプロパティ setter、getterのセットのコンピューテッドプロパティ の2種類。 クラスプロパティは  setter、getterのセットのコンピューテッドプロパティ のみ。 次回は クラス...

10月23日(月)3、4コマ目

イメージ
今日、やったこと Optional型 構造体 今日のホワイトボード 練習問題2 正解例をあげておきます。 練習問題2_2 練習問題2_3 練習問題2_4 練習問題2_5 練習問題2_6 オプショナルバインディングとオプショナルチェイニング 両方ともアンラップ。 オプショナルチェイニングはアンラップしてメソッドやプロパティにアクセスしたいときに利用。ただし、プロパティやメソッドの戻り値はOptional型になるので注意(結局、またアンラップ)。 図 オプショナルバインディングとオプショナルチェイニング ?とか!とか なにといっしょかで動きが変わる。 ただ、 !はnilになる可能性があるので注意!! (注意の!) 図 ?とか!とか 構造体 クラスに似ているが、メモリの使い方が違う。 クラス型変数にはクラスのインスタンスへの参照情報が代入される。 図 クラスの場合 構造体型変数には構造体のインスタンスそのものが代入される(イメージ)。 図 構造体の場合 次回は 練習課題3のつづき。

10月18日(水)3コマ目

イメージ
今日、やったこと nil Optional型 今日のホワイトボード nil Javaのnullと同じ。 Swiftでは非Optional型の変数(Int型やDouble型)にはnilが代入できない。 Javaのようにnullで初期化はできない。 変数にnilを代入するには Swiftでnilを扱えるのはOptional型。 Optional型はInt型やDouble型をnilが扱えるOptional型でラップしたイメージ。 Optional型変数は宣言時に型に ? を指定する。 図 Optional型 gurad ifのelseだけ版と思ってもらえれば。 図 gurad 練習問題2 2-1 2進数へ変換するには2で割った余りが2進数での各桁の数。 2で割った答え(商)が0になるまで割り続ける。 図 練習問題2-1 2-3、2-4 いちおう、ヒント。 図 練習問題2-3、2-4 次回は 練習問題2の続きをやってもらいます。

10月16日(月)3、4コマ目

イメージ
今日、やったこと 変数 配列 演算子 条件分岐 繰り返し 関数 今日のホワイトボード 文字列に変数を埋め込む バックスペースは半角モードでOption/Altキー+\ で入力。  図 文字列に変数を埋め込む 練習問題1-0~1-2 正解例をあげておきます。 練習問題1-0 練習問題1-1 練習問題1-2 関数 関数を呼び出す際、引数名を指定する必要があるケースに注意!! 図 関数のつくりかた、呼び出し方 次回は 関数のオーバーロードから。