コードスニペットの実行
Kotlinコードは通常、IDE、テキストエディタ、またはその他のツールで作業するプロジェクトとして構成されています。しかし、関数の動作を素早く確認したり、式の結果を調べたりしたい場合、新しいプロジェクトを作成してビルドする必要はありません。さまざまな環境でKotlinコードを即座に実行できる3つの便利な方法を見てみましょう。
- IDEのスクラッチファイルとワークシート。
- ブラウザのKotlin Playground。
- コマンドラインのki shell。
IDE: スクラッチファイルとワークシート
IntelliJ IDEAとAndroid Studioは、Kotlinのスクラッチファイルとワークシートをサポートしています。
スクラッチファイル (または単に_スクラッチ_) を使用すると、プロジェクトと同じIDEウィンドウでコードのドラフトを作成し、その場で実行できます。 スクラッチファイルはプロジェクトに縛られません。OS上の任意のIntelliJ IDEAウィンドウから、すべてのスクラッチファイルにアクセスして実行できます。
Kotlinスクラッチファイルを作成するには、File | New | Scratch Fileをクリックし、Kotlinタイプを選択します。
_ワークシート_はプロジェクトファイルです。プロジェクトディレクトリに保存され、プロジェクトモジュールに紐付けられます。 ワークシートは、ソフトウェアの単位を構成しないものの、教育用やデモ用資料のようにプロジェクト内でまとめて保存すべきコードの断片を作成するのに役立ちます。
プロジェクトディレクトリ内にKotlinワークシートを作成するには、プロジェクトツリーでそのディレクトリを右クリックし、New | Kotlin Class/File | Kotlin Worksheetを選択します。
DANGER
KotlinワークシートはK2モードではサポートされていません。同様の機能を持つ代替手段を提供するよう取り組んでいます。
構文ハイライト、自動補完、その他のIntelliJ IDEAコード編集機能は、スクラッチファイルとワークシートでサポートされています。main()
関数を宣言する必要はありません。記述したすべてのコードは、main()
の本体内にあるかのように実行されます。
スクラッチファイルまたはワークシートにコードを書き終えたら、Runをクリックします。実行結果はコードの反対側の行に表示されます。
インタラクティブモード
IDEは、スクラッチファイルとワークシートからコードを自動的に実行できます。入力を停止するとすぐに実行結果を得るには、Interactive modeをオンに切り替えます。
モジュールの使用
Kotlinプロジェクトのクラスや関数をスクラッチファイルやワークシートで使用できます。
ワークシートは、自身が配置されているモジュールのクラスや関数に自動的にアクセスできます。
プロジェクトのクラスや関数をスクラッチファイルで使用するには、通常通りimport
ステートメントでスクラッチファイルにインポートします。その後、コードを記述し、Use classpath of moduleリストで適切なモジュールを選択して実行します。
スクラッチファイルとワークシートはどちらも、接続されているモジュールのコンパイル済みバージョンを使用します。そのため、モジュールのソースファイルを変更した場合、モジュールを再ビルドすると変更がスクラッチファイルやワークシートに反映されます。スクラッチファイルまたはワークシートを実行する前にモジュールを自動的に再ビルドするには、Make module before Runを選択します。
REPLとして実行
スクラッチファイルまたはワークシート内の特定の式を個別に評価するには、Use REPLを選択して実行します。コード行は順次実行され、それぞれの呼び出し結果が提供されます。後で、自動生成されたres*
の名前(対応する行に表示されます)を参照することで、同じファイル内でその結果を使用できます。
ブラウザ: Kotlin Playground
Kotlin Playgroundは、ブラウザでKotlinコードを記述、実行、共有するためのオンラインアプリケーションです。
コードの記述と編集
Playgroundのエディタ領域では、ソースファイルに書くのと同じようにコードを記述できます。
- 任意の順序で独自のクラス、関数、トップレベル宣言を追加できます。
- 実行可能部分は
main()
関数の本体に記述します。
通常のKotlinプロジェクトと同様に、Playgroundのmain()
関数はargs
パラメータを持つことも、まったくパラメータを持たないこともできます。実行時にプログラム引数を渡すには、Program argumentsフィールドに記述します。
Playgroundはコードをハイライト表示し、入力時にコード補完オプションを表示します。標準ライブラリとkotlinx.coroutines
からの宣言を自動的にインポートします。
実行環境の選択
Playgroundは実行環境をカスタマイズする方法を提供します。
- 利用可能な将来のバージョンのプレビューを含む複数のKotlinバージョン。
- コードを実行するための複数のバックエンド: JVM、JS (レガシーまたはIRコンパイラ、またはCanvas)、またはJUnit。
JSバックエンドの場合、生成されたJSコードも確認できます。
コードをオンラインで共有
Playgroundを使ってコードを他の人と共有できます。Copy linkをクリックして、コードを見せたい人に送信してください。
また、Playgroundからコードスニペットを他のウェブサイトに埋め込んだり、実行可能にしたりすることもできます。Share codeをクリックすると、サンプルを任意のウェブページやMedium記事に埋め込むことができます。
コマンドライン: ki shell
ki shell (Kotlin Interactive Shell) は、ターミナルでKotlinコードを実行するためのコマンドラインユーティリティです。Linux、macOS、Windowsで利用可能です。
ki shellは基本的なコード評価機能に加えて、以下のような高度な機能を提供します。
- コード補完
- 型チェック
- 外部依存関係
- コードスニペット用のペーストモード
- スクリプトサポート
詳細については、ki shell GitHubリポジトリを参照してください。
ki shellのインストールと実行
ki shellをインストールするには、GitHubから最新バージョンをダウンロードし、任意のディレクトリに解凍します。
macOSでは、以下のコマンドを実行してHomebrewでki shellをインストールすることもできます。
brew install ki
ki shellを起動するには、LinuxおよびmacOSではbin/ki.sh
(Homebrewでki shellをインストールした場合はki
のみ) を、Windowsではbin\ki.bat
を実行します。
シェルが実行されたら、すぐにターミナルでKotlinコードを記述し始めることができます。:help
(または:h
) と入力すると、ki shellで利用可能なコマンドが表示されます。
コード補完とハイライト
ki shellはTabを押すとコード補完オプションを表示します。また、入力時に構文ハイライトも提供します。:syntax off
と入力することでこの機能を無効にできます。
Enterを押すと、ki shellは入力された行を評価し、結果を出力します。式の値は、res*
のような自動生成された名前を持つ変数として出力されます。後で、実行するコード内でそのような変数を使用できます。入力された構文が不完全な場合(例えば、条件はあるが本体のないif
文など)、シェルは3つのドットを出力し、残りの部分を待ちます。
式の型の確認
複雑な式やよく知らないAPIの場合、ki shellは式の型を表示する:type
(または:t
) コマンドを提供します。
コードの読み込み
必要なコードが別の場所に保存されている場合、ki shellに読み込んで使用する方法は2つあります。
:load
(または:l
) コマンドでソースファイルを読み込む。:paste
(または:p
) コマンドでペーストモードでコードスニペットをコピー&ペーストする。
ls
コマンドは利用可能なシンボル(変数と関数)を表示します。
外部依存関係の追加
標準ライブラリに加えて、ki shellは外部依存関係もサポートしています。これにより、プロジェクト全体を作成することなく、サードパーティライブラリを試すことができます。
ki shellでサードパーティライブラリを追加するには、:dependsOn
コマンドを使用します。デフォルトでは、ki shellはMaven Centralで動作しますが、:repository
コマンドを使用して接続すれば他のリポジトリも使用できます。