Josh Suereth 著 Eugene Yokota 訳 はじめに Scala 2.10.0 より、Scala は文字列の補間 (string interpolation) というデータから文字列を作成する機構を提供する。 文字列の補間を使ってユーザは加工文字列リテラル (processed string literal) 内に直接変数の参照を埋め込むことができる。具体例で説明しよう: 上の例において、リテラル s"Hello, $name" は加工文字列リテラルだ。これはコンパイラがこのリテラルに対して何らかの追加処理を実行するということだ。加工文字リテラルは " の前にいくつかの文字を書くことで表記される。文字列の補間は SIP-11 によって導入され、実装の詳細もそこに書かれている。 用例 Scala は s、f、そして raw という 3つの補間子 (interpolator)
Working with Json JSON basics JSON with HTTP JSON Reads/Writes/Format Combinators JSON automated mapping JSON Transformers Main concepts Section introduction Configuration API HTTP programming Asynchronous HTTP programming The Twirl template engine Form submission and validation Working with Json Working with XML Handling file upload Accessing an SQL database Using the Cache Calling REST APIs with
ScalaではReflectionを使うとより詳細な型情報を取得することができます。 クラス情報を取得 (Scala2.10以前) Scala2.10以前では、以下のように型情報を取得できます。 case class Person(id:Int, name:String, age:Option[Int]) val c = classOf[Person] // Class[Person]を取得 c.getSimpleName // Person c.getName // Personクラスのパッケージ名を含むfull path しかし、Personクラスにどのような型の変数が定義されているを知りたい場合、 javaのReflection機能を使う。Class.getDeclaredFields/Methodsなど javapやASMなどでコンパイル後のバイトコードを直接参照 ScalaSig
これが……型の力かッ……!! spray | Blog » The Magnet Patternという記事で、「The Magnet Pattern」というデザインパターンが紹介されている。 これは、メソッドオーバーロードで解決していた問題を、型クラスとDependent method typesを組み合わせて置き換えることで、オーバーロードの際の様々な制約(Type Erasureなど)を突破し、より柔軟な拡張性を得ることができるというもの。このパターンでは、引数の型に応じて異なる結果型を返すようにできる。 この記事で、今まで何のために使われるのかわからんかったDependent method typesの有効性が理解でき、あらためて型の力を思い知った。 以前に"Generalized type constraints"(Scalaで<:<とか=:=を使ったgeneraliz
2012-08-06 Scala マクロの作者 Eugene Burmako さんによるリフレクション API に関する発表のスライド、“Metaprogramming in Scala 2.10” を翻訳しました。翻訳の公開は本人より許諾済みです。翻訳の間違い等があれば遠慮なくご指摘ください。 2012年4月28日 Eugene Burmako 著 2012年8月5日 e.e d3si9n 訳 はじめに メタプログラミング メタプログラミングとは、他のプログラムや自身をデータとして書いたり操作するコンピュータプログラムを書くこと。 —Wikipedia コンパイラ 問: どうやってメタプログラミングを可能にすることができだろう? 答: コンパイラよりもプログラムに関してデータを持つ者がいるだろうか? プログラマにコンパイラを公開しよう。 リフレクション 2.10 ではプログラムに関するデ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く