scala

id:kmizushimaさんがさらに短くカッコよく添削

object StringDump{ def main(args: Array[String])={ println(dump(args(0))) } def dump(str:String):String={ str.getBytes("UTF-8").map{ case 34 => "\\\"" case 92 => "\\\\" case n if 32 <= n && n <= 126 => new String(Array[Byte](n)) case n if …

早速id:kmizushimaさんが添削してくださいました

object StringDump{ def main(args: Array[String])={ println(dump(args(0))) } def dump(str:String):String={ val buf = new StringBuffer buf append "\"" str.getBytes("UTF-8").foreach{ case 34 => buf append "\\\"" case 92 => buf append "\\\\" c…

RubyのString#dumpの実装

Scalaで文字列をコンソールに出力しようとしたときに マルチバイト文字が入っていたりすると 文字化けをして非常によろしくない。 RubyだとString#dumpの結果を出力すればいいのですが、 Javaにそういうものはないらしい。 Scalaにもなさそうだ。 というわけ…

ymnkさんによる添削

我らが東北が誇るEclipseとLiftのコミッタである 山中さんの添削 object StringDump{ implicit def enrichString(str: String) = new { def dump:String={ str.getBytes("UTF-8").map{ _.asInstanceOf[Char] match{ case n @ ('"' | '\\') => "\\" + n case …

コンソールで高橋メソッドを入力し、画面に表示するサンプル

つまらないサンプルですみません。 package xibbar import javax.swing.{JFrame,JLabel,JButton,SwingConstants} import java.awt.{BorderLayout,Font} import java.awt.event.{ActionListener,ActionEvent} object RealtimeTakahashiMethod { def main(args…

簡単なGUIアプリ

勉強会へ向けて何かアプリを作っておくことになったので、 簡単なGUIアプリを作りました。 swingがわからないと作れなさそうだったので、 Javaの本を久しぶりに買いました。Head First Java 第2版 ―頭とからだで覚えるJavaの基本作者:Kathy Sierra,Bert Bate…

匿名関数を渡す

rubyのブロックのように匿名関数を渡すこともできます。 object Timer { def oncePerSecond(callback: () => unit) { while (true) { callback(); Thread sleep 1000 } } def main(args: Array[String]) { oncePerSecond(()=> println("time flies like an a…

命令はオブジェクト

scalaの命令はオブジェクトだそうです。 どういうことかというと、引数でファンクションを渡すことができるということです。 object Timer { def oncePerSecond(callback: () => unit) { while (true) { callback(); Thread sleep 1000 } } def timeFlies() …

Scalaの勉強始めます

Scalaの勉強をしてみることにしました。 勉強会のメンバーはみんなJavaな人なのですが、 私は遠い昔にちょっとだけやった程度なので、よくわかりません。 コンパイラがどのような変換をおこなってJavaコードにしているかなんて、 変換されたら余計わかりませ…