読者です 読者をやめる 読者になる 読者になる

takafumi blog

日々の勉強メモ

【Scala】【ScalikeJDBC】 Config設定方法

環境 Scala 2.11.8 ScalikeJDBC 2.5.0 基本的にはこの内容 Configuration - ScalikeJDBC scalikejdbc-conifg, application.confは設定方法によって必要 build.sbt libraryDependencies ++= Seq( "org.scalikejdbc" %% "scalikejdbc" % "2.5.0", "org.scalike…

【Scala】 sealedとパターンマッチ

環境 Scala 2.11.8 シールドクラス(トレイト)を継承したサブクラスは、すべて同一のソースファイルに定義される。 そしてシールドクラスをパターンマッチに使用されると、match式の網羅性をコンパイラがチェックできる。 sealedなし このときはcaseのパター…

【Scala】 sbt, activatorのproxy設定

環境 Scala 2.11.8 CentOS7.0 sbtやactivatorを実行してmoduleをダウンロードしてくるときに、proxyで引っかかる時の対策。 内部で実行されるjavaコマンドがproxyで引っかかってるので、起動スクリプトを編集する手もあるが、以下の環境変数を設定する事で解…

【Scala】 空Listの表記

環境 Scala 2.11.8 CentOS7.0 なんか忘れるのでメモ scala> val l1: List[Int] = Nil l1: List[Int] = List() scala> val l2 = Nil:List[Int] l2: List[Int] = List() scala> val l3 = List.empty[Int] l3: List[Int] = List() scala> val l4 = List[Int]() …

【Play Framework】 PlayFramework最新版をインストール

環境 Play Framework 2.4.6 CentOS7.0 インストール java,javacがなければ、インストールしておく。 $ # インストール $ cd /usr/local/src $ sudo wget https://downloads.typesafe.com/typesafe-activator/1.3.7/typesafe-activator-1.3.7-minimal.zip $ s…

【Scala】 変位パラメータの境界「下限境界」「上限境界」

環境 Scala 2.11.6 CentOS7.0 「Scalaスケーラブルプログラミング」(コップ本)メモ ■ 下限境界、上限境界(第19章) 簡単にいうと、型パラメーターに制限をつける機能 ▽下限境界 型パラメータが、どのサブクラスまで許可されるかを示す ▽上限境界 型パラメータ…

【Scala】 変位アノテーション「非変」「共変」「反変」

環境 Scala 2.11.6 CentOS7.0 「Scalaスケーラブルプログラミング」(コップ本)メモ ■ 変位アノテーション(第19章) 例えば class Foo(foo: AnyRef){} というクラスがあったとき、引数fooにはAnyRefとそのサブ型は全て受け入れられる。 scala> val f1 = new Fo…

【Scala】 正規表現のパターンマッチ

環境 Scala 2.11.6 CentOS7.0 パターンマッチに正規表現を使える。 グルーピングしている部分にマッチする。 scala> val r = """^(\d{4})-(\d{2})-(\d{2})$""".r r: scala.util.matching.Regex = ^(\d{4})-(\d{2})-(\d{2})$ scala> "2015-08-19" match { | c…

【Scala】 正規表現による文字列検索

環境 Scala 2.11.6 CentOS7.0 matches シンプル。ただし部分一致ではなく全体一致のみ。 scala> val target = "abcdefghijklmnopqrstuvwxyz" target: String = abcdefghijklmnopqrstuvwxyz scala> target matches """mno""" res1: Boolean = false scala> ta…

【Scala】 Applicationトレイト (Appトレイト)

環境 Scala 2.11.6 CentOS7.0 「Scalaスケーラブルプログラミング」(コップ本)メモ ■ Application(App)トレイト(第4章) 通常Scalaアプリケーションはシングルトンオブジェクトのdef mainが実行される。 例 object Foo { def main(args: Array[string]):Unit …

【Scala】 アクセス修飾子と限定子

環境 Scala 2.11.6 CentOS7.0 「Scalaスケーラブルプログラミング」(コップ本)メモ ■ アクセス修飾子と限定子(第14章) アクセス修飾子 修飾子 アクセス範囲 private 非公開メンバー。メンバーを含むクラス、オブジェクト内のみ。Javaと異なりインナークラス…

【Scala】REPLで複数行の貼り付け

環境 Scala 2.11.6 CentOS7.0 Scala REPLで複数行のコマンドを貼る。 :paste と打ってから、貼り付ければOK。 終了はCtrl + D。 今まで知らないでエライ苦労していた。 他にも:helpと打てば使えるコマンドがイロイロある。 scala> :help All commands can be…

【Scala】for式の括弧と、セミコロン推論

環境 Scala 2.11.6 CentOS7.0 「Scalaスケーラブルプログラミング」(コップ本)メモ 読了:第07章まで ■ for式の括弧と、セミコロン推論 P.134 「もしそうしたいなら、ジェネレータとフィルターは、括弧(...)ではなく中括弧{...}で囲んでもよい。中括弧で囲む…

正規表現の名前付きグループ

環境 CentOS 7.0 Perl 5.16 PHP 5.6 Java 1.8.0nbsp;scala 2.11.6 恥ずかしながら、正規表現のグループに名前を付けれる事を今まで知らなかった。 ・・・という事で幾つかの言語の書き方を調べてみた。 結果は全部 abc, 123, def abc, 123, def で上が、通常…

Scala マップ / Map

環境 Scala 2.11.6 CentOS7.0 「Scalaスケーラブルプログラミング」(コップ本)メモ 読了:第04章まで ■ マップ / Map Scalaの集合は 順序が存在しない 重複を許可しない ミュータブルとイミュータブルが両方存在する 基本はイミュータブル である。 ▽初期化 …

Scala 集合 / Set

環境 Scala 2.11.6 CentOS7.0 「Scalaスケーラブルプログラミング」(コップ本)メモ 読了:第04章まで ■ 集合 / Set Scalaの集合は 順序が存在しない 重複を許可しない ミュータブルとイミュータブルが両方存在する 基本はイミュータブル 異なる型を要素に追…

Scala タプル

環境 Scala 2.11.6 CentOS7.0 「Scalaスケーラブルプログラミング」(コップ本)メモ 読了:第04章まで ■ タプル Scalaのタプルは インデックスは1から始まる 順序が存在する。 要素は型が異なるものを使える ※タプルとして型は決まる。例えば一度(Int, Int)と…

Scala リスト / List

環境 Scala 2.11.6 CentOS7.0 「Scalaスケーラブルプログラミング」(コップ本)メモ 読了:第04章まで ■ リスト / List Scalaのリストは インデックスは0から始まる 常にイミュータブル。初期化時以外は要素を変更できない。 ※値の追加、や連結は常に新しいリ…

Scala 配列 / Array

環境 Scala 2.11.6 CentOS7.0 「Scalaスケーラブルプログラミング」(コップ本)メモ 読了:第04章まで ■ 配列 / Array Scalaの配列は インデックスは0から始まる 配列要素の型は決まっている である。 ▽初期化 scala> val ar1 = new Array[String](5) ar1: Ar…

Scala mainメソッド定義とコンパイル

環境 Scala 2.11.6 CentOS7.0 「Scalaスケーラブルプログラミング」(コップ本)メモ 読了:第04章まで ■ main定義とコンパイル mainメソッドの定義 アプリケーションのエントリーポイント、Javaでいうmainメソッドの定義。 // Something.scala import Anythin…

Scala シングルトンオブジェクト(singleton objects)

環境 Scala 2.11.6 CentOS7.0 「Scalaスケーラブルプログラミング」(コップ本)メモ 読了:第04章まで ■ シングルトンオブジェクト(singleton objects) Scalaは、Javaと違いクラスが静的メンバーを持たない。 その代わりにシングルトンオブジェクトを定義する…

Scalaまとめ

Scalaを勉強したときの記事まとめ ■Scalaスケーラブルプログラミング(コップ本) 読了:第17章まで 関数定義 関数リテラル メソッドパラメータ1個のときの省略記法 Warningメモ シングルトンオブジェクト mainメソッド定義とコンパイル 配列/Array リスト/Lis…

Sacala Warningメモ

環境 Scala 2.11.6 CentOS7.0 「Scalaスケーラブルプログラミング」(コップ本)メモ 読了:第04章まで ■ Warning 結果型がUnitのときに、最終行でUnit以外の型を返す式を評価している scala> def f() { "this String gets lost"} <console>:7: warning: a pure express</console>…

Scala メソッドパラメータ1個のときの省略記法

環境 Scala 2.11.6 CentOS7.0 「Scalaスケーラブルプログラミング」(コップ本)メモ 読了:第03章まで ■ メソッドパラメータ1個のときの省略記法 for(i <- 0 to 2) の「0 to 2」の部分は (0).to(2) の省略形。 Scalaではメソッドのパラメータが1つのとき、ド…

Scala 関数リテラル

環境 Scala 2.11.6 CentOS7.0 「Scalaスケーラブルプログラミング」(コップ本)メモ 読了:第03章まで ■ 関数リテラル args.foreach(arg: String) => println(arg)) arg:Stringの:Stringは型推論。 ちなみに引数1個なら args.foreach(println) でも同じ。 注…

Scala 関数定義

環境 Scala 2.11.6 CentOS7.0 「Scalaスケーラブルプログラミング」(コップ本)メモ 読了:第04章まで ■ 関数定義 def helloworld(s1: String, s2: String): String = { s1 + ", " + s2 } 上記はそれぞれ def 引数 hellowold 関数名 (s1: String, s2: String)…

vimのScalaのシンタックスを追加

環境 vim7.4&nbspScala 2.11.6 vimでScalaのsyntaxをチェックする。 NeoBundleを使っているなら、.vimrcに NeoBundle 'derekwyatt/vim-scala' を追加して「:NeoBundleInstall」するだけでOK。

Scala 2.11.6をrpmからインストール

環境 CentOS 7.0 Scala 2.11.6やっぱりREPL起動時のエラーが気になるので、Scalaを最新版にする事にした。 Scala 2.9.2をyumでインストール - takafumi blog既存のScalaとリポジトリを削除する。 $ yum remove typesafe-stack scala sbt g8 $ rpm -e typesaf…

Scala 2.9.2をyumでインストール

環境 CentOS 7.0 Scala 2.9.2Scalaを始めようと思い立ったので、typesafe-stackインストール。 TypesafeStackとは、Scalaなどの最新ソフトウェアプラットフォーム。まず Typesafe Yum Repository にあるリポジトリをインストール。 $ cd /usr/src/redhat/RPM…