takeda-soft.jp 2024 著作権. 不許複製 プライバシーポリシー
今日は、ScalaのOptionの使い方について解説しますよ。OptionはScala使いにとってはなくてはならないものです。これを覚えてしまうと他の言語でもOptionを作りたくなる、かもしれない? Optionってなに? Option型は、値があるかないか分からない状態を表すものです。「Maybeモナド」とか言ってしまうとアレですがまぁそんなようなものらしいです。 Optionの定義 まずは、Optionの定義から見てみましょう。Option型は、抽象クラスOption[+A]と、Option[A]を継承して値がある場合のSome[+A]型とNoneオブジェクトがあります。 Option - Scala Standard Library API (Scaladoc) 2.10.0-20120530-022829-8d38079ab4 - scala.Option // Optionの抽
● [Scala]「Scala開眼」が凄い件 Scala の深い部分を検索すると必ずヒットするサイト 「Scala開眼」 http://www.h7.dion.ne.jp/~samwyn/Scala/scalaindex.htm が凄すぎる。この人は何者なの?文章を少し読むだけで只者じゃないことがわかる。一言にすれば天才。 Scalaへの深い理解を持ち 多方面の膨大な背景知識を武器に 圧倒的な概念の整理力と 優れたワードセンスと表現力で 体系的に形式的にScalaを説明している 特に、凡人なら10行くらいかけてグダグダ説明しそうなものを、片っ端から漢字2文字ぐらいの言葉で簡潔かつ的確に表現(説明)していくその姿には畏敬の念すら感じる。入門書だけでは「Unit型」が結局何なのか理解できずにモヤモヤとしていたのだが、このサイトには概念の理解を最優先にする姿勢が見え、誤解を恐れない直球な説明に鼻
1階受付:インストール等 / 1階案内版:コマンド / 2階:書き方 / 3階:文と式 / 4階:関数 / 5階:オブジェクト指向 / 6階:型 / 7階:注釈等 / 屋上:言語仕様要約 / 雲:scalaパッケージ概観 / 青空:その他の付属パッケージ概観 なお、以上の解説はJavaの文法とコマンドや標準ライブラリ等を一応知っていることを前提(現行のScalaはなおJavaライブラリへの依存度が高くScalaだけで完結できる状態では無い。なお、Scalaのコンパイラ自体はJava1.4用のコードも吐けるが、標準ライブラリが多く1.5を前提としている)とし、その違いだけをとりあえずは書き留めるものである。もっぱら文法やライブラリ参照用であることを目指しているので、例や特長等は次のリンクを参照されたい(なおただし、原著者たちの配慮にもかかわらず、それらの例は関数型言語に関する事前の概要的把握
以下のhello.scalaが変更無しに両方で実行出来るか試す。 object hello extends Application { println("Hello, world!") } Java編 コンパイル。これでhello.classが出来る。(一緒にhello$.classも出来る) > scalac hello.scala直接hello.classを実行 > java -cp c:\scala\lib\scala-library.jar;. hello Hello, world!ラッパーを使って実行 > scala hello Hello, world! .NET編 コンパイル。これでhello.exeが出来る。(一緒にhello.msilも出来る) > scalac-net hello.scala直接hello.exeを実行 > hello Hello, world!ラッパー
Scala の追加パッケージ scala-msil を使えば、Scala のスクリプトから .NET 用の MSIL(Microsoft Intermediate Language)テキストファイルを生成できる。ということで早速試してみる。 今回使った環境は以下の通り。 Scala 2.7.3 scala-msil インストール まずは、sbaz を使って scala-msil をインストールする。sbaz (Scala Bazaars) は Scala のパッケージ管理ツールで、Maven とか RubyGems みたいなもの。 Scala の実行環境が整っていれば、以下のコマンドを実行する事で scala-msil がインストールされる。 >sbaz install scala-msilなお、プロキシサーバー経由でインターネットに接続している場合は、Scala のホームディレクトリに
Javaな人から見ると、「Scalaって難しい」ってイメージがありますね。俺も最初はそう思ってました。今もですけど。 で、考えてみたんですが、何が難しいって考え方・イディオムになじみがないのが原因かと思ったんです。 ここでは、俺が今までScalaをやってきて得た考え方を紹介します。「Scalaをちょっとやってみたんだけど、とっつきにくくて…」と思われている方は、ぜひご一読ください。 参考資料: Scala入門 - Scalaで書きはじめたJava使い向け - Scala勉強会@東北 Dropbox - 404 神は言われた。「リストあれ。」 Lisperは、リストをどう作るかをまず考えるらしいです。適切なリストが出来たら、プログラムはもうできたも同然だと。同じ考え方は、Scalaでも通用すると思います。 大まかに、こんな流れで考えてます。(リストは最初から与えられることもあるでしょう) 「
Java変態文法最速マスターなんてのがかなりブクマされてるみたいだが、変態さならJavaなんてScalaの足元にも及ばないぜ!!ということで、Scala版を書いてみました。しかし、実はあまり変態ではないかもしれません。元ネタと違って、これを読めば何かがわかる、という意味の実用性はあまり無いでしょう。 implicit conversion編 基本 Scalaのimplicit conversionは使いようによってはScalaの強力な型システムを台無しにしてしまう力を持っています。たとえば、 implicit def string2int(x: String): Int = Integer.parseInt(x) というimplicit conversionを定義してやると、"300" / 3が100になるなどというキモい挙動を実現することができます。また、さらにカスタマイズして、16進数
という訳で、第2回Android勉強会@金沢支部で、一部の方に非常に注目されているAndroid & Scalaの話をしてきた。こんな事やってる人は、全世界合わせても100名いないはず。先駆者になるチャンス。 金沢は遠すぎて参加できなかったよ、という方の為に、発表内容+アルファで再現してみる。 Scalaについて オブジェクト指向型言語と関数型言語のいいとこ取り。 釈迦に説法になりそうなのでこれ以上の解説はパス。参照:Scala - Wikipedia 開発環境 今回はAndroid SDK 1.1 + antでターミナルより開発 Build.xmlをscalacに対応させて対応している(参考:chris blogs: Programming for Android with Scala) Android SDK 1.5では、Add-onを開発する必要があるらしい(参考:Scala wit
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く