Scala
■ はじめに https://dk521123.hatenablog.com/entry/2023/03/18/034704 の続き。 正規表現に関して、Scalaのライブラリは使えなさそうなので Javaのライブラリで実装してみる 【1】サンプル 例1:ファイル名に付加されている日付を取得する import java.ut…
■ はじめに 今回は、Scalaの可変長引数について扱う 目次 【1】Scalaの可変長引数 【2】構文 【3】サンプル 【4】使用上の注意 【1】Scalaの可変長引数 * 関数の引数の個数を指定せずに引数を渡す方法 * Scalaでは可変長引数のことを 「repeated parame…
■ はじめに 今更だが、Scala の asInstanceOf / isInstanceOf を扱う。 目次 【1】asInstanceOf 1)使用上の注意 【2】isInstanceOf 【3】サンプル 例1:implicit Class の メソッド 【1】asInstanceOf * Scala の キャスト 1)使用上の注意 * 例えば…
■ はじめに https://dk521123.hatenablog.com/entry/2024/07/23/193246 で、sealed trait をやったが、 それを拡張するためのメソッドを追加したく、 イメージとしては、C#の拡張メソッドをScalaでやりたい。 Scala の implicit がやりたいことができそうな…
■ はじめに Scala で 色々なデータ型をサポートしたMapを作りたいと思い 調べていたら、以下が見つかったので、まとめておく。 https://stackoverflow.com/questions/43495047/scala-variable-with-multiple-types 目次 【1】用語整理 1)代数的データ型 (…
■ はじめに https://dk521123.hatenablog.com/entry/2023/03/08/000000 の続き。 今回は、Scala で、Joda-Time を使うことを扱う。 目次 【1】Joda-Time 1)使用上の注意 【2】インストール 【3】基本動作 0)現在時間 1)Datetime⇒文字列 2)文字列⇒…
■ はじめに https://dk521123.hatenablog.com/entry/2023/03/13/000345 https://dk521123.hatenablog.com/entry/2023/09/07/223422 の続き。 前回は、immutable のコレクションを扱ったが 今回は、mutable のコレクションを取り上げる。 きっかけとしては、 …
■ はじめに https://dk521123.hatenablog.com/entry/2023/03/31/002830 で、Java由来の Mockito を触ったが 今回は、ScalaTest + ScalaMock を触ってみる。 目次 【1】ScalaMock 【2】インストール 【3】使用上の注意 1)final / private メソッド・クラ…
■ はじめに https://dk521123.hatenablog.com/entry/2023/03/27/001306 https://dk521123.hatenablog.com/entry/2023/03/28/003906 の続き。 今回は、Scalaの単体試験する際に ScalaTest を使用した時のTipsについてまとめる 目次 【1】初期処理・後処理 1…
■ はじめに https://dk521123.hatenablog.com/entry/2024/06/08/122708 の続き。 Scala の specs2 について、少しづつ書き溜めていく 目次 【1】単体テストスタイル 【2】受入テストスタイル 1)ポイント 2)isメソッド 【1】単体テストスタイル * org.…
■ はじめに https://dk521123.hatenablog.com/entry/2024/06/07/183708 で、紹介した Scala の テスティングフレームワーク「2)specs2」について もう少し深彫ってみる 目次 【1】specs2 1)その他特徴 2)補足:BDD(Behavior-Driven Development; 振舞…
■ はじめに Scala の 単体試験をする可能性が出てきたので テスティングフレームワーク について、 徐々に書き溜めていく 目次 【1】Scala の テスティングフレームワーク 1)ScalaTest 2)specs2 3)ScalaCheck 4)TestNG 5)Setak / Setac 【2】Sca…
■ はじめに 業務で、Scala の Resources を動的に切り替える必要があるので Scala の Resources について、色々調べたことをまとめる 目次 【1】Scala の Resources ディレクトリ 1)デフォルトのResources パス 【2】Resources 関連のAPI 【3】Resource…
■ はじめに https://dk521123.hatenablog.com/entry/2023/12/26/012343 https://dk521123.hatenablog.com/entry/2024/01/11/233802 で、AWS CodeArtifact を使って、クローズされた Mavenのリポジトリ (と pip(PyPI; The Python Package Index))を考えている…
■ はじめに Proxy接続環境下で、SBTを使えないので 徐々にメモる。 目次 【0】Proxy環境下で sbt コマンド実行した場合 【1】その1:環境変数を利用する 【2】その2:実行時に指定する 【0】Proxy環境下で sbt コマンド実行した場合 * 以下の関連記事…
■ はじめに https://dk521123.hatenablog.com/entry/2023/01/24/000000 で述べた通り、Scala には、 break / continue が基本使用しない。 そこでどうするかを纏める 目次 【1】break / continue の代替案 1)break の代替案 2)continue の代替案 【2】…
■ はじめに ScalaのモジュールをJARファイル化して JAVAしか入っていない環境で実行するってことをやっていて 意外と手間取ったので、メモ。 目次 【1】前提条件 1)sbt 含む Scala 環境 2)sbtプラグイン「sbt-assembly」 【2】JAR作成 1)作成コマン…
■ はじめに 今回は、Scala で乱数やランダム文字列についてまとめてみる 目次 【1】UUID 例1:java.util.UUID 【2】乱数 例1:scala.util.Random 【1】UUID 例1:java.util.UUID * JavaのUUIDを使う => 結局、これが一番めんどくない => 以下の関連記…
■ はじめに https://dk521123.hatenablog.com/entry/2023/03/03/000000 で、Scala の メソッド について扱ったが 今回は、Scala の 関数 について扱う。 目次 【1】関数 (Function) 【2】用語整理 1)無名関数 / 匿名関数 / 関数リテラル (Function liter…
■ はじめに https://dk521123.hatenablog.com/entry/2023/03/16/012034 https://dk521123.hatenablog.com/entry/2023/04/04/000733 の続き。 今回は、Scala で TOMLファイルの扱いについてまとめる TOML https://dk521123.hatenablog.com/entry/2023/04/25/1…
■ はじめに https://dk521123.hatenablog.com/entry/2023/03/14/000857 で、Scala の クラスについて扱ったが 今回は、トレイト - Trait について学ぶ cf trait = (人・ものの)特性、特色、特徴 目次 【1】トレイト - Trait 1)Java との違い 2)用語整理…
■ はじめに Scala の 部分関数 (PartialFunction) について、学んでいく 目次 【1】部分関数 / PartialFunction 1)サンプル 【2】部分関数の合体 - orElseメソッド 1)サンプル 2)使用上の注意 【1】部分関数 / PartialFunction * 特定の引数のみ処…
■ はじめに https://dk521123.hatenablog.com/entry/2023/03/13/000345 の続き。 Scala を勉強してて、コレクションの操作がちゃんと分かっていないと 話にならなそうなので、基本事項をまとめる 目次 【00】コレクション変換のコツ 【01】foreach / zip…
■ はじめに Scalaの本をみて、やっと「カリー化」の意味が分かったのでメモ。 (ただ、まだ、実際のメリットがいまいち分からない) 目次 【1】カリー化(currying) 補足 【2】サンプル 例1:Hello world 【3】メリット・デメリット 【1】カリー化(cu…
■ はじめに sbt で 開発用(Local)と本番用(AWS)で切り替えたい場合に 色々と調べていたんだけど、やっとそれっぽい切り替えが可能になったので メモしておく。 なお、参考にしたのは、以下のサイトを組み合わせている https://stackoverflow.com/questio…
■ はじめに https://dk521123.hatenablog.com/entry/2023/06/10/034839 で、WSL内に、IntelliJ の環境を作ったが、 Windows Update により環境がぶっ壊れたので VisualBox内の Linux 内に作ることにする (基本、Windows上でも同じ) 目次 【1】注意点 【2…
■ はじめに 小ネタ。 https://dk521123.hatenablog.com/entry/2023/08/01/004207 でやった「sbt run による引数設定の仕方」を分冊。 (見つけづらかったので) 目次 【1】sbt run 1)引数を設定するための構文 2)コマンド例 【2】build.sbt に独自の引…
■ はじめに 小ネタ。 https://dk521123.hatenablog.com/entry/2023/08/24/002539 でやった「sbt run による引数設定の仕方」を分冊。 目次 【1】SDKMAN 【2】インストール 1)Linux z)トラブルシュート 【3】各種インストール 1)Java 2)sbt 【4】…
■ はじめに 将来的に必要になるであろう Scalaのカバレッジツール (code coverage)について 未来の自分のために調べてみた 目次 【0】Scalaのカバレッジツール 1)メモ:採用候補 【1】sbt-jacoco 【2】sbt-scoverage 【3】Cobertura 【4】その他のJ…
■ はじめに https://dk521123.hatenablog.com/entry/2023/03/09/000000 で、Scala の Option型をやったが、 今回は、Either型 について扱う。 目次 【1】Either型 1)Left/Rightの使い分け 【2】サンプル 例1:With getOrElse 例2:With foreach 例3:…