scala

URLRewriteをLiftでやってみる

参考URL 本家のURL見ればわかるんだけど、一応サンプル書いとく サンプル /product/show/のようなURLをLiftに渡して、をメソッド側で受取、処理する場合を考える Boot.scalaでの記載 LiftRules.addRewriteBeforeを使う。 LiftRules.addRewriteBefore { case …

配列のかけ算と割り算

mixiのscalaコミュで教えてもらった内容。すげーすっきりした。 mixi にて質問した内容 お題 1: var array1 = Array(1,2,3,4) 2: var array2 = Array(5,6,7,8) 3: var result = array1 * array2; 4: println(result) -> Array(5, 12, 21, 32) のようなソース…

List(リスト)の連結

[修正] id:kmizushimaさんの指摘をもらって修正 先頭に追加 var a = List(1,2,3) a = 4::a println(a) -> List(4, 1, 2, 3) 末尾に追加 Listを生成する方法(こっちはWarning発生しないので、こちらを使うことにする) var a = List(1,2,3) a = a ::: List(4…

LiftのORMをmainメソッドから使う方法

WEBアプリを起動しないで、LiftのORMを使いたい場合には、ORMのメソッドを使う前にBoot.bootを実行しておけば使えるようになる。 サンプル import bootstrap.liftweb._ def main(args: Array[String]) = { val boot = new Boot boot.boot bootしない場合のエ…

MySQLを使うために

参考URL 0. DB作成しておくて $ mysql -u root > create database hoge 1. pom.xml に mysql-connector-java を追加 $ cd PROJECT_ROOT $ vi pom.xml ----- <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.0.8</version> </dependency> ----- $ mvn install 2. Boot.scalaを修正 $ vi Bo…

Liftサンプル動かす時のメモ

以下ページからサンプルを落とし、mvn jetty:runやった時にエラーが発生したので、解決方法をめもっとく。 ※ただし正しいやり方かはいまいちよ〜わからん ダウンロードページ http://liftweb.net/index.php/HowTo_run_examples エラー内容 $ mvn install [IN…

ERROR - Failed to Boot

現象 mvn jetty:run やると以下エラーがでることがある。 2008-10-10 16:30:14.015::INFO: No Transaction manager found - if your webapp requires one, please configure one. ERROR - Failed to Boot java.lang.ClassNotFoundException: bootstrap.liftw…

型キャスト

参考URL そのまま以下検索用に記載 オブジェクトを指定の型にキャストするには、Any#asInstanceOfを使います。 また、指定した型と互換性があるか評価するにはAny#isInstanceOfを使います。 var i = 10 var str = "aaa" // オブジェクトが指定した型と互換性…

ファイル入出力

ファイル出力の方法の一般的なのはなんだろうか? ファイル入力 参考URL そのまま。ただし、ファイルクローズ無し。 // file_read_scala.scala import scala.io.Source object FileReadScala { def main( args: Array[String] ) { // 「ソース」っていうのを…

Mapのループ

参考URL これらはpythonでいう、 aa,bb = list.items() // aaをつかってごにょごにょ // bbをつかってごにょごにょのような代替え?になる? ループ1 import scala.collection.mutable.HashMap val countMap = new HashMap[Int, String] countMap += 1 -> "…

XMLをHTTP接続で取得する

import java.net.{URLConnection, URL} import scala.xml._ def main(args: Array[String]) = { val feed = getFeedElem(url); // 後はXMLの属性にアクセスして、似るなりやくなりする val items = feed\"item"; for(item <- items){ var summary = (item\"s…

内包表記

参考URL 以下のように内包表記かけるみたい for (i <- List.range(1, 10) if i % 2 == 0) yield i

タプルについて

参考URL以下のような使い方ができる。複数の値を返却する時便利。 def main(args: Array[String]) = { var result = hoge(); println(result._1); println(result._2); var(rtn1, rtn2) = hoge(); println(rtn1); println(rtn2); } def hoge():(String,Strin…

Scalaもちょっとさわってみる。

インストール $ sudo port install scala