ラベル scala の投稿を表示しています。 すべての投稿を表示
ラベル scala の投稿を表示しています。 すべての投稿を表示

2010年8月24日火曜日

Scalaの勉強9

今日はclassとobjectの扱い方を学ぶ
・対応したクラスとオブジェクトを、コンパニオンクラス・コンパニオンオブジェクトと呼ぶ。
コンパニオンクラスをもたないオブジェクトは、スタンドアロンオブジェクトと呼ぶ。

スタンドアロンオブジェクトでmain関数がよべない…。
scalaプログラムを実行するには、
スタンドアロンシングルトンオブジェクトの名前を指定するとかなんとか。よくわかんね~。
だが、objectを作成して実行すると成功。
動いても概念がわからないので、なんか納得いかない。

・applicationトレイトなるものがmainの代わりになるようだ。
ただし、
コマンド引数がとれない
マルチスレッドプログラムで使えない
というデメリットがあるそうだ。

・型はjavaとほぼ一緒だが、シンボルリテラルなるものがある。よくわからんので放置。
これはある程度理解してから、本を買って理解したほうがよい。



記録
勉強時間
1:00minites
ネットのみの情報だと、これ以上の理解は厳しいかな。やっぱ本が必要だ。

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

2010年8月23日月曜日

Scalaの勉強8

今日は2Dレイアウトライブラリーの勉強

・ファクトリーメソッド
インスタンスの生成をサブクラスに委ねる。
前に勉強したのに完全に忘れてます…。

・宣言だけで定義のない抽象メソッドは、abstract修飾子はつけなくてもよい。

・空括弧省略メソッドは、フィールドで定義してもよい。また、空括弧省略でフィールドや
メソッドを区別しない使えるようにすることを、「統一形式アクセスの原則」という。

違いは、
一般的に、フィールドで実装すると初回に計算結果を保持するので、値の呼び出しが早い分メモリを確保してしまう。
メソッドであれば、毎回計算するので呼び出しに若干時間がかかる分メモリを節約できる。

・クラスのメソッドの実行方法をまだ勉強してなかった・・・。今まで全部objectでやっていた。
だが、違いがわからないと厳しくなってきたので、メモ。
http://d.hatena.ne.jp/plasticscafe/20100610/1276142337

・javaと違って静的メンバー(staticな変数やメソッド)がもてない。代わりにシングルトンオブジェクトをもっている。scalaは完全なオブジェクト指向だから…らしい。



記録
勉強時間
1:00minites
学習に利用しているサイト
http://d.hatena.ne.jp/plasticscafe/20100609/1276056014
よくわからないことが多すぎる。初心者本を購入して、それで基礎を固めるべきかな。
体系立ててやらないときつい

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

2010年8月18日水曜日

Scalaの勉強7

・パターンガードの勉強
記述順が大事

・シールドクラスがある
パターン漏れが防げる

・Option型なるものがある
実際の値を持っているSome()

値が無いことを表すNone
がある

活用方法としては、渡される値がnullになる可能性がありそうな場合はOption型をつかうとよろしい。




記録
勉強時間
1:30minites
学習に利用しているサイト
http://d.hatena.ne.jp/plasticscafe/20100818/1282103955
タプルのところから。まだまだ文法を理解していない。
しかし、railsで自分のサイトを構築する予定だったけど、scalaとliftを使ってGEAを利用して勉強するのもいいかなと思い始めてきた。
どうしようかなあ。設計があるていど終わるまでに決めないと。

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

2010年8月17日火曜日

Scalaの勉強6

・タプルという概念が存在する
複数の値をカンマ区切りで並べて括弧で囲むと、タプルになる。
_1, _2というようなフィールド名でアクセスできる。
・束縛変数?なるものがある。
つーか、詳細な資料が見つからん。



記録
勉強時間
1:30minites
学習に利用しているサイト
http://d.hatena.ne.jp/plasticscafe/20100817/1282017571
次回はパターンガードの勉強から
ネットだけの勉強では理解が浅く、物足りなくなってきた。
コップ本が欲しいけど、railsの本を買うので今はやめとこう…。もっと知識がついてからだな。

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

2010年8月16日月曜日

Scalaの勉強5

Listの勉強
・変数にNilを入れてforeachで回しても、javaのようなnullpoiterにはならない。
・値の追加ができない…。is not menber of …とでる。nilを宣言してから追加ができないのか??
時間がないので次回。


記録
勉強時間
40minites
学習に利用しているサイト
http://d.hatena.ne.jp/unageanu/20080518

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

2010年8月13日金曜日

Scalaの勉強4

今日もケースクラスの勉強
・パターンマッチは変数を使ってもできる。
・コンストラクターを使っても可能
これは素晴らしい。
・マッチするパターンがないとMatchErrorの例外をなげる。
・ワイルドカードはマッチ対象全体でなく、パターン内の要素でも使える
これも良い機能。
・Anyを使ったパターンマッチも可能。

全ての型のルートはAny



記録
勉強時間
1hour30minites
学習に利用しているサイト
http://d.hatena.ne.jp/plasticscafe/20100810/1281412749
つぎは先に進む前に、Listの勉強をしよう。
今日でscalaの勉強をはじめて4日目。時間にして計6時間です。
まだまだわからないことだらけです。
はやくフレームワークをいじりたい。playってやつがよさそうです。
まあでも、基礎は大切なので、じっくりやっていきます。

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

2010年8月12日木曜日

Scalaの勉強3

・scalaは全てがオブジェクトである。

・かっこがない「引数無しメソッド」を定義することが可能

・オーバーライドはjavaと異なり、override修飾子が必須である。

・ケースクラスというものが存在する
クラスインスタンスをつくるのにnewが不要(ファクトリーメソッド)
getterが自動でさせる。オブジェクト変数で値が取得できる
パラメーターをval化(フィールド化)する
パターンマッチをサポートする
パターンマッチはセレクターをmatchキーワードの前におく。


・REPL(対話型実行環境)の実行方法
コマンドプロンプトで
scala
とコマンドを叩く




記録
勉強時間
1hour30minites
学習に利用しているサイト
http://d.hatena.ne.jp/plasticscafe/20100809/1281326371
ネット上のサンプルでは、よく理解できないサンプルが多い。
何の役に立つのかが明白でないのだ。
とりあえず、scalaを触って三日が経過して感じたことは、
rubyとjavaと比較しながら勉強したほうがよくscalaを理解できると思った。
フレームワークを使ったアプリやandroidを作成するには、まだまだかなりの勉強が必要だ。
次は変数を使ったパターンマッチから勉強。

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

2010年8月11日水曜日

Scalaの勉強2

本日のまとめ

・classはデフォルトのコンストラクターをひとつもつことが推奨されている

・traitという仕組みがある。
Mix-inのための仕組みである。
Mix-inとは、メソッドが実装されたインターフェースみたいなものである。

・import文
好きな位置でスコープを限定してimportできる。

・変数
valは後で変更不可能(javaでいうfinal)
varは後で変更可能

・scalaにはREPLが提供されている。
REPLは対話型の実行環境

・引数なしのメソッドもつくれる


記録
勉強時間
1hour30minites
学習に利用しているサイト
http://codezine.jp/article/detail/5329?p=4
http://homepage.mac.com/takashi_miyamoto/scala/ScalaTutorial.pdf
はじめての概念が多く、結構手こずった。だが、面白い。
次回はtutorialのクラスから再開する

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

2010年8月10日火曜日

Scalaの勉強1

Scalaの勉強

ダイレコの改修が落ち着き次第、iphoneの勉強の傍らに、FaceBookでも何かアプリを作成しようと思っています。
んで、開発言語ですが、scalaを使おうと考えています。
理由は言語思想が素晴らしいのと、androidの開発にも利用でき、今後のメイン言語として活躍してくれそうだからです。
というわけで、まずは基礎から勉強していこうと思います。以下は、防備録を兼ねたメモです。

・scalaのバージョンをチェック

scala -version

・scalaのコンパイル

scalac ファイル名

・返り値

void == Unit(正確ではないが、ざっくりとした意味)

・クロージャー

関数のこと?

・callbackパラメーター

渡される関数がパラメーターを取らず (「()」で示されます)、
返すもの (「=>」で示されます) がない (関数型の値「Unit」で示されます) 場合のみ

・ラムダ式

名前を持たない関数またはサブルーチン。



記録
勉強時間
1hour20minites
学習に利用しているサイト
http://www.ibm.com/developerworks/jp/java/library/j-scala01228.html
リスト 5まで完了。

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加
Related Posts Plugin for WordPress, Blogger...