Scala Tutorialsを読む 3

今日は 3 Variables を読みます。

http://scalatutorials.com/tour/interactive_tour_of_scala_variables.html

変数ですね。

Variables are declared using the var keyword

変数はvarキーワードを使って宣言されます。

In many cases, 多くの場合に、

the type information can be omitted, 型情報は省略出来ます。

thanks to Scala's type inference. Scala型推論のおかげで。

To declare a variable with explicit type, 明示的な型の宣言をしたいとき、

put the type after the variable name following a colon :

変数名のあとに:を書いて、型を書きます。

e.g.

var x: Int = 1 + 2

Tip: チップ:

Adding explicit type is a matter of preference 明示的な型を追加する事は、好みの問題だけど、

in one hand it helps "documenting" your code, 一方ではあなたのコードのドキュメント化に役立ちますが、 on the other hand make it more "cluttered". 他方では、雑然としてしまうでしょう。(型だらけでね)

Use judgement, e. g. add explicit types to public interfaces and APIs

付けるか付けないかの判断は、例えば、 パブリックなインターフェイスAPIは明示的に書いて、

and skip it for internal implementation. 内部的な実装はスキップします。

感想

動的な言語での開発では、型はかかなくてももちろん動くのだけど、大きなプロジェクトになって来ると引数の型は意識したいので、コメントで書いたりする訳です。

型推論の付いている言語の場合も、動的言語での開発に似ていて、型書かなくて済む事が多いので、書かない訳だけど、それだと、メンテナンスするときに困るので、型はどっかで書いたほうが良いんだけど、全部は大変だし煩雑になるので、publicなものに限定して型を書くのが良いんじゃね?っていう話ですね。

読みにくいってだけではなくて、型推論をする場合の依存関係の判断がHaskellだと必要になってくるのだけど、相互に依存してしまうと面倒くさい事になる。明示してあれば他の関数に型の判断を依存しなくてよくなるのでコンパイラの依存解析にも優しいし、高速になるんじゃないですかね?

明日は、4 Final Variables 最後の変数です。 この世の終わりに定義される最後の変数とは?みたいな話では無い事は確かですね。

Javaのfinalな変数はvalで書けるぜっていう話みたいです。

どうも、予習しておくと、単語は覚えやすいようなので明日の分も読んで起きました。なんか、英語の授業でもそういえば、単語の意味は調べとけってやってたなと。

  • reassigned 割り当て直す, 再配置する
  • exactly 正確に
  • either 左か右かってやつ
  • prefer A to B (Bより)Aを好む
  • benefit 利点

昔は、辞書引くのがめんどうだったけど、今はMacだと選択&ctrl+cmd+dで直ぐ引けて便利だなぁ