#17 Scalaで学ぶモジュールとパッケージの基本

Scalaのパッケージは、JVM言語らしくJavaと同じ考え方を引き継いでいます。この記事では、Scalaにおけるパッケージの基本と、外部ライブラリの導入方法をあわせて解説します。

パッケージの宣言

package com.example.utils object Greeter { def greet(name: String): Unit = { println(s"こんにちは、$name さん") } }

他のパッケージから使う

import com.example.utils.Greeter Greeter.greet("太郎")

パッケージ内のすべての定義をまとめて読み込みたい場合は、`import com.example.utils._`のようにアンダースコアを使います。

objectという独自の仕組み

Scalaのコード例に出てきた`object`は、インスタンスを1つだけ持つ特別な仕組みです。Javaの`static`メソッドに近い役割を、より整理された形で実現しています。同じ名前の`class`と`object`を同じファイルに定義すると、その`object`は「コンパニオンオブジェクト」と呼ばれ、`class`のプライベートなメンバーにアクセスできる特別な関係になります。

外部ライブラリを使う(sbt)

Scalaプロジェクトでは、`sbt`というビルドツールを使って外部ライブラリを管理するのが一般的です。`build.sbt`に依存関係を追記します。

libraryDependencies += "com.typesafe.play" %% "play-json" % "2.10.0"

`%%`はScalaのバージョンに応じたライブラリを自動選択する記法で、`%`だけだとバージョンを明示的に指定する必要があります。

Scalaならではの注意点

ScalaはJavaと同じパッケージの仕組みを使えるため、Java向けの慣習(ドメイン名を逆にした命名など)がそのまま通用します。一方で`object`のような、Scala特有の書き方も合わせて理解しておく必要があります。またScalaはJavaのライブラリ資産(Maven Centralに公開されているもの)もそのまま利用できるため、`sbt`の依存関係にはScala専用ライブラリとJava製ライブラリが混在することも珍しくありません。

まとめ

Scalaのパッケージ管理はJavaと共通していますが、`object`というScala独自の仕組みも組み合わせて使われます。外部ライブラリは`sbt`の`build.sbt`で管理し、`%%`と`%`の違いにも注意しましょう。


本ページはプロモーションを含みます。

参考書籍(PR)

Scalaをもっと学びたい方には「実践Scala入門」がおすすめです。


PR

コードを書かずに自動化したい方へ

「学んだけど自分の作業に組み込む時間がない」という方向けに、ダブルクリックで動く Windows専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。

コメント

このブログの人気の投稿

#25 Rustで学ぶAI API(ChatGPT等)の呼び出し方の基本

#8 C++で学ぶ文字列操作の基本

#16 TypeScriptで学ぶ辞書型(マップ)の基本