新しいアカウントで始めました。

身の回りの出来事や写真が中心です。

Scala例の講習会資料その14。少しわかってきたかも => trait

2023-04-30 10:48:35 | Scala

 選手をピッチャーとバッターに分けて、大谷選手みたいな人はNitouryuとして、traitを2個つなげて、クラス定義をしてみました。これだとpitchingとbattingが全て一様にしかインスタンスを作れません。確認はしてませんが、出来るようなことを書いているようです。Kop本では。

 

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Scala例の講習会資料その13。なかなか難しいtrait。

2023-04-27 23:11:17 | Scala

 ここ暫く、大谷翔平選手と吉田正尚選手のニュースが毎日出ますね。大谷翔平選手は、投げる、打つ、走る全部一流なので、打つ方が駄目でも、何かしら見せてくれます。吉田正尚選手は投げることはしないですが、打つ、守る一流ですね。

 traitで悩んでました。野手を元に、二刀流はどう書けば良いのか?四苦八苦した結果が下です。全てのデータを入れた一個のクラスでも良いのかもしれません。traitされた項目は(この場合はkati、make)、newでインスタンスを作成したようには書けないんですかね。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

シラネアオイと西洋シャクナゲ

2023-04-26 09:19:21 | Scala

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Scala例の講習会資料その12。case classとは?

2023-04-25 23:07:11 | Scala

 case classとは、メンバーが公開で、インスタンスの生成にnewが要らないクラス。equals()、toString、hashCodeなどの基本的なメソッドが付属する。(講習会資料では、overrideされてるとあります。)この後にmatchと合わせての例があるようです。

 

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Scala例の講習会資料その11。コンパニオンクラス、オブジェクト。

2023-04-25 09:13:13 | Scala

 同名のクラスとオブジェクトの場合、この場合はPoint、クラス側からオブジェクト、この場合はobject Pointのval msgを参照できる。クラス側ではimport Point.msgをしているが、Point.msgでも参照できた。6行目。15行目にはnewが無いので、10行目が適用されてるようです。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Scala例の講習会資料その10。abstract、extends、overrideなど、長方形と円の面積。

2023-04-22 20:30:20 | Scala

回答には、class Rectangleとclass Circleのdef areaにoverrideが付いてました。それが正解でしょうが、上のように付いてなくても、実行はできました。

同じ関数の名前areaで、RectangleとCircleのメソッドを呼び出せる、それ程大きなメリットですかね?

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Scala例の講習会資料その9。Point3Dの書き方。その2。

2023-04-22 15:16:09 | Scala

上の上でWarningが2個あったので、指示に従って消すと下のようです。

 p,p2,p3,p4全てvalになりました。p3.x、p4.xは変更できます。p.xとp2.xは変更できません。クラスの定義時にvalで定義したものは、変更できないようですし、varで定義したものは変更できるようです。指定しないとvalとなるのかもしれません。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Scala例の講習会資料その8。Class Point3Dの書き方。

2023-04-22 10:04:58 | Scala

講習会の回答は8行目です。自分が書いた1行目から6行でも、間違いでは無いのですが…。簡単な方が良いということですので、正解は8行目ですかね。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Scala例の講習会資料その7。カリー化と部分評価。どんな場面で使う?

2023-04-21 21:56:39 | Scala

 2行目と3行目の書き方だけでいいように思うんですが…。無名関数と言っても、変数名をつけてますし、(lambdaは使いません!)使い方は関数と同じでは?部分評価はどんなとき使う?

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Scala例の講習会資料その6。3個のうち最大の変数は?

2023-04-20 23:09:38 | Scala

 3個の変数のどれが一番大きいか?数値を答えるのでなく、変数名を答える。思いつかなかったので、配列にして、本当は使いたくないが、添字の番号で答える。としました。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Scala例の講習会資料その5。Pointクラスを使って、直角三角形か?判断してみました。

2023-04-19 19:36:43 | Scala

 def CkChokuが難しかった。最後は、3辺の全部の計算をして、a*a = b*b + c*cがどれか成り立っていれば、直角三角形にしました。条件部分にa>b>cでしかもa>c>bならaが一番大きいと出来ませんでした。a>bのように、2個なら良いんですが、3個はだめ。match使えるんですかね。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Scala例の講習会資料その4。Pointクラスと"+"演算子の定義

2023-04-19 09:22:19 | Scala

Warningが4行目のPointに出てますが、何故?

 講習会資料には、1行目と5行目はありませんが、IDEAが指摘します。なくても動くことは動く。9行目のoverrideは、クラスがデフォルトでメソッドtoStringを持っているので、同名のメソッドを定義するときは、必要のようです。def +()との違いに注意ですかね。15行目と16行目に注意。本来は16行目の書き方が正しいが、"+”のように、シンタックスシュガーですがかね?15行目のように書けます。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Scala例の講習会資料その3。matchの例ですが、ピンときません?

2023-04-18 10:34:13 | Scala

Scalaのmatchは、VBなど?のswitchと似てるのですが、機能はかなり上になってます。

 5行目から11行までは、一旦Arrayでやってみてます。Listだとイミュータブル(変更不可)です。6行から7行は講習会資料のヒントです。使えそうな場面があれば、調べて使うしか無いですかね。単純なswitchの代わり以外の場面が思いつかない。(悲)

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Scala例の講習会資料その2。forの3重ループyield付きの例。

2023-04-17 14:16:21 | Scala

forも式なので、少なくともyield付きの場合、変数に代入できます。この場合は変数のタイプはvectorとなってますが、何者ですかね?

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Scala 面白いのですが、Kop本は量が多すぎですので…。

2023-04-17 11:38:33 | Scala

何度も同じようなことを、繰り返してますが、少しこの講習をやってみてみます。

4行目と11行目に注目です。Scala Ver3では、VBに近い書き方もOKになりました。自分的にはVBも楽なので好きですが…。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする