選手をピッチャーとバッターに分けて、大谷選手みたいな人はNitouryuとして、traitを2個つなげて、クラス定義をしてみました。これだとpitchingとbattingが全て一様にしかインスタンスを作れません。確認はしてませんが、出来るようなことを書いているようです。Kop本では。
選手をピッチャーとバッターに分けて、大谷選手みたいな人はNitouryuとして、traitを2個つなげて、クラス定義をしてみました。これだとpitchingとbattingが全て一様にしかインスタンスを作れません。確認はしてませんが、出来るようなことを書いているようです。Kop本では。
ここ暫く、大谷翔平選手と吉田正尚選手のニュースが毎日出ますね。大谷翔平選手は、投げる、打つ、走る全部一流なので、打つ方が駄目でも、何かしら見せてくれます。吉田正尚選手は投げることはしないですが、打つ、守る一流ですね。
traitで悩んでました。野手を元に、二刀流はどう書けば良いのか?四苦八苦した結果が下です。全てのデータを入れた一個のクラスでも良いのかもしれません。traitされた項目は(この場合はkati、make)、newでインスタンスを作成したようには書けないんですかね。
case classとは、メンバーが公開で、インスタンスの生成にnewが要らないクラス。equals()、toString、hashCodeなどの基本的なメソッドが付属する。(講習会資料では、overrideされてるとあります。)この後にmatchと合わせての例があるようです。
同名のクラスとオブジェクトの場合、この場合はPoint、クラス側からオブジェクト、この場合はobject Pointのval msgを参照できる。クラス側ではimport Point.msgをしているが、Point.msgでも参照できた。6行目。15行目にはnewが無いので、10行目が適用されてるようです。
回答には、class Rectangleとclass Circleのdef areaにoverrideが付いてました。それが正解でしょうが、上のように付いてなくても、実行はできました。
同じ関数の名前areaで、RectangleとCircleのメソッドを呼び出せる、それ程大きなメリットですかね?
上の上でWarningが2個あったので、指示に従って消すと下のようです。
p,p2,p3,p4全てvalになりました。p3.x、p4.xは変更できます。p.xとp2.xは変更できません。クラスの定義時にvalで定義したものは、変更できないようですし、varで定義したものは変更できるようです。指定しないとvalとなるのかもしれません。
講習会の回答は8行目です。自分が書いた1行目から6行でも、間違いでは無いのですが…。簡単な方が良いということですので、正解は8行目ですかね。
2行目と3行目の書き方だけでいいように思うんですが…。無名関数と言っても、変数名をつけてますし、(lambdaは使いません!)使い方は関数と同じでは?部分評価はどんなとき使う?
3個の変数のどれが一番大きいか?数値を答えるのでなく、変数名を答える。思いつかなかったので、配列にして、本当は使いたくないが、添字の番号で答える。としました。
def CkChokuが難しかった。最後は、3辺の全部の計算をして、a*a = b*b + c*cがどれか成り立っていれば、直角三角形にしました。条件部分にa>b>cでしかもa>c>bならaが一番大きいと出来ませんでした。a>bのように、2個なら良いんですが、3個はだめ。match使えるんですかね。
Warningが4行目のPointに出てますが、何故?
講習会資料には、1行目と5行目はありませんが、IDEAが指摘します。なくても動くことは動く。9行目のoverrideは、クラスがデフォルトでメソッドtoStringを持っているので、同名のメソッドを定義するときは、必要のようです。def +()との違いに注意ですかね。15行目と16行目に注意。本来は16行目の書き方が正しいが、"+”のように、シンタックスシュガーですがかね?15行目のように書けます。
Scalaのmatchは、VBなど?のswitchと似てるのですが、機能はかなり上になってます。
5行目から11行までは、一旦Arrayでやってみてます。Listだとイミュータブル(変更不可)です。6行から7行は講習会資料のヒントです。使えそうな場面があれば、調べて使うしか無いですかね。単純なswitchの代わり以外の場面が思いつかない。(悲)
forも式なので、少なくともyield付きの場合、変数に代入できます。この場合は変数のタイプはvectorとなってますが、何者ですかね?
何度も同じようなことを、繰り返してますが、少しこの講習をやってみてみます。
4行目と11行目に注目です。Scala Ver3では、VBに近い書き方もOKになりました。自分的にはVBも楽なので好きですが…。