カテゴリー
Scala

Scalaで遊んでました。6.9演算子の定義。付け加えてみました。

ブレークポイント(赤丸)を追加、変更しました。addは通分する考えて直してみました。def lcmは最小公倍数を求めます。

 

 var obj3 = obj1 + obj2とobj3 = obj1.add(obj2)の結果が同じです。実行結果の最後、4/10==>>2/5となりました。(^o^)でもどちらか一方があれば良いのかなあ、とも思います。

 

カテゴリー
Scala

Scalaで遊んでました。6.9演算子の定義。

def addとdef +は中身は同じです。下の図のようにval obj3 = obj1 + obj2とも書けるようになりました。

 正規化した分数を表示してますが、obj6 + obj7 = 40 / 100が結果なんですね。正規化すると2/5ですね。これで良いんですか?良いんでしょうね。この部分はKop本には無いんで、遊んでます。(-_-;)

 追記)掛け算と割り算はこれ以外のやり方は無いでしょうが、引き算と足し算については、最小公倍数を求めて通分する考えもありますね。例えば上のように1/10と3/10であれば4/10で良いですから、10/100と30/100にしなくても。(-_-;)意外と簡単に出来そうです。両方の分母をかけて、最大公約数で割ると、通分したときの分母が出るようです。

カテゴリー
Scala

Scalaで遊んでました。6.7補助コンストラクター。

 def thisで始まるのが、補助コンストラクター。最後は基本コンストラクターに行く、とのことです。ここでは分母が1の場合は、分子だけで確定出来るようにしたようです。

確かに分子だけで確保しましたが、分母は1となっているようです。

カテゴリー
Scala

Scalaで遊んでました。6.5フィールドの追加,6.6自己参照

 def add,def lessThan,def maxを追加しました。def maxのelse thisのthis以外は省略出来ると言うことですが、有った方が安心出来る気もします。(-_-;)

 追加した関数を使います。この時点でval obj3 = obj1 + obj2とは書けません。またfieldを追加したことによりobj1.denの様に書けます。scalaではデフォルトがpublicと言うことです。

カテゴリー
Scala

Scalaで遊んでました。Rationalクラス6.4 require

class Rationalにrequireを追加で、分母が0だとIllegal ArgumentExceptionエラーが起きます。(-_-;)

分母を0にしてみました。

カテゴリー
Scala

Scalaで遊んでました。Rationalクラス6.3 override toString()

toStringはシステムで持ってる関数と同じ名称なので,overrideを付けて宣言する。と言うことですか?Stringを返します。

println(obj)でclass Rationalで定義した、toStringの通りプリントされてます。

カテゴリー
Scala

Scalaで遊んでました。Rationalクラス6.1

 オブジェクト名を間違いました。rationalTester.scalaとすべきでした。(-_-;)オブジェクトを確保するときに、分子と分母をプリントします。mainではobjの種類とアドレスですか?をプリントしますが、どのクラスにもあるtoStringが呼ばれてると言うことのようです。

カテゴリー
Scala

Scalaで遊んでました。演算子はメソッドである。

 上の図で1+2と1.+(2)の書き方は、結果は同じです。というか1+2は1.+(2)を呼び出している。結果としては同じと言うことですかね。その少し下にはval pos = s indexOf ‘o’が有りますが、これは演算子の書き方ですね。直ぐしたにはprintln(s.indexOf(‘o’))が有ります。これも結果的にはs.indexOf(‘o’))を呼び出しているというこのとのようです。

カテゴリー
Scala

Scalaで遊んでました。コンパニオンオブジェクト。

 上の図でclass ChecksumAccumulatorとobject ChecksumAccumulatorと同じ名称です。同じファイルにあることも条件のようです。val acc = new ChecksumAccumulatorとあるのはクラスのことのようです。newを使えるのはclassでobjectでは無いはず。objectはシングルトンで1個しか無いでしょう。

 例題はコマンドプロンプトからやってます。scala Summer.scala of loveでofとloveのchecksumは-213,-182と言うことらしいですが、答えは例題の通りなのでそうなんでしょう。(-_-;)

コップ本の4章が終わりです。5章は例題が殆どREPLで演算子の説明です。肝は関数は演算子と言うことらしいので、その辺をやってみようかと思ってます。

カテゴリー
ブログ

ゴルフやったことがありますか?

 有りません。クラブには触ったことはあります。今から45年ほど前に学校の体育でドライバーの練習を何回かと、パターの練習もなんかしたように思います。それ以外はありませんので、有りませんです。

inserted by FC2 system