Skip to content

コードスニペットの実行

Kotlinコードは通常、IDE、テキストエディター、またはその他のツールで作業するプロジェクトとして編成されます。しかし、関数の動作を素早く確認したり、式の値を見つけたりしたい場合、新しいプロジェクトを作成してビルドする必要はありません。さまざまな環境でKotlinコードを即座に実行できる、これら3つの便利な方法をご覧ください。

IDE: スクラッチとワークシート

IntelliJ IDEAとAndroid Studioは、Kotlinのスクラッチファイルとワークシートをサポートしています。

  • スクラッチファイル(または単に_スクラッチ_)を使用すると、プロジェクトと同じIDEウィンドウでコードドラフトを作成し、その場で実行できます。 スクラッチはプロジェクトに紐付けられていません。OS上の任意のIntelliJ IDEAウィンドウから、すべてのスクラッチにアクセスして実行できます。

    Kotlinスクラッチを作成するには、File | New | Scratch File をクリックし、Kotlin タイプを選択します。

  • _ワークシート_はプロジェクトファイルです。これらはプロジェクトディレクトリに保存され、プロジェクトモジュールに紐付けられています。 ワークシートは、実際にはソフトウェアユニットを構成しないものの、教育用またはデモ資料のようにプロジェクト内でまとめて保存すべきコードの一部を記述するのに役立ちます。

    プロジェクトディレクトリにKotlinワークシートを作成するには、プロジェクトツリーでそのディレクトリを右クリックし、New | Kotlin Class/File | Kotlin Worksheet を選択します。

    KotlinワークシートはK2モードではサポートされていません。同様の機能を持つ代替手段を提供するよう取り組んでいます。

構文ハイライト、オートコンプリート、およびその他のIntelliJ IDEAのコード編集機能は、スクラッチとワークシートでサポートされています。main()関数を宣言する必要はありません。記述したすべてのコードは、あたかもmain()の本体内にあるかのように実行されます。

スクラッチまたはワークシートでのコードの記述が完了したら、Run をクリックします。実行結果は、コードの反対側の行に表示されます。

Run scratch

インタラクティブモード

IDEは、スクラッチとワークシートのコードを自動的に実行できます。入力を停止するとすぐに実行結果を得るには、Interactive mode をオンにします。

Scratch interactive mode

モジュールを使用する

Kotlinプロジェクトのクラスや関数をスクラッチやワークシートで使用できます。

ワークシートは、自身が配置されているモジュールのクラスや関数に自動的にアクセスできます。

プロジェクトのクラスや関数をスクラッチで使用するには、通常通りimportステートメントでそれらをスクラッチファイルにインポートします。次にコードを記述し、Use classpath of module リストで適切なモジュールを選択して実行します。

スクラッチとワークシートは両方とも、接続されたモジュールのコンパイル済みバージョンを使用します。そのため、モジュールのソースファイルを変更した場合、モジュールをリビルドすると変更がスクラッチとワークシートに反映されます。スクラッチまたはワークシートを実行する前にモジュールを自動的にリビルドするには、Make module before Run を選択します。

Scratch select module

REPLとして実行する

スクラッチまたはワークシート内の個々の式を評価するには、Use REPL を選択して実行します。コード行は順次実行され、各呼び出しの結果が提供されます。後で、自動生成されたres*名(対応する行に表示されます)を参照することで、同じファイル内で結果を使用できます。

Scratch REPL

ブラウザ: Kotlin Playground

Kotlin Playgroundは、ブラウザでKotlinコードを記述、実行、共有するためのオンラインアプリケーションです。

コードを記述および編集する

Playgroundのエディターエリアでは、ソースファイルと同じようにコードを記述できます。

  • 独自のクラス、関数、トップレベル宣言を任意の順序で追加します。
  • 実行可能な部分をmain()関数の本体に記述します。

一般的なKotlinプロジェクトと同様に、Playgroundのmain()関数はargsパラメータを持つことも、まったくパラメータを持たないこともできます。実行時にプログラム引数を渡すには、Program arguments フィールドに記述します。

Playground: code completion

Playgroundは、入力中にコードをハイライト表示し、コード補完オプションを表示します。標準ライブラリとkotlinx.coroutinesからの宣言を自動的にインポートします。

実行環境を選択する

Playgroundは、実行環境をカスタマイズする方法を提供します。

Playground: environment setup

JSバックエンドの場合、生成されたJSコードも確認できます。

Playground: generated JS

コードをオンラインで共有する

Playgroundを使用してコードを他のユーザーと共有するには、Copy link をクリックし、コードを見せたい相手に送信します。

Playgroundのコードスニペットを他のウェブサイトに埋め込んだり、実行可能にしたりすることもできます。Share code をクリックして、サンプルを任意のウェブページやMediumの記事に埋め込みます。

Playground: share code

コマンドライン: ki shell

ki shellKotlin Interactive Shell)は、ターミナルでKotlinコードを実行するためのコマンドラインユーティリティです。Linux、macOS、Windowsで利用できます。

ki shellは、基本的なコード評価機能に加えて、次のような高度な機能を提供します。

  • コード補完
  • 型チェック
  • 外部依存関係
  • コードスニペットのペーストモード
  • スクリプトサポート

詳細については、ki shell GitHubリポジトリを参照してください。

ki shellをインストールして実行する

ki shellをインストールするには、GitHubから最新バージョンをダウンロードし、任意のディレクトリに解凍します。

macOSでは、以下のコマンドを実行することでHomebrewを使用してki shellをインストールすることもできます。

shell
brew install ki

ki shellを起動するには、LinuxとmacOSではbin/ki.sh(Homebrewでki shellがインストールされている場合はki)、Windowsではbin\ki.batを実行します。

シェルが実行されたら、すぐにターミナルでKotlinコードを書き始めることができます。ki shellで利用可能なコマンドを確認するには、:help(または:h)と入力します。

コード補完とハイライト

ki shellは、Tab キーを押すとコード補完オプションを表示します。また、入力中に構文ハイライト機能も提供します。この機能は、:syntax offと入力することで無効にできます。

ki shell highlighting and completion

Enter キーを押すと、ki shellは入力された行を評価し、結果を出力します。式の値は、res*のような自動生成された名前を持つ変数として出力されます。後で、実行するコードでこれらの変数を使用できます。入力された構文が不完全な場合(例えば、条件はあるが本体がないifなど)、シェルは3つの点を表示し、残りの部分を待機します。

ki shell results

式の型を確認する

よくわからない複雑な式やAPIの場合、ki shellは式の型を表示する:type(または:t)コマンドを提供します。

ki shell type

コードをロードする

必要なコードがどこか別の場所に保存されている場合、それをki shellにロードして使用する方法は2つあります。

  • :load(または:l)コマンドでソースファイルをロードします。
  • :paste(または:p)コマンドでペーストモードでコードスニペットをコピー&ペーストします。

ki shell load file

lsコマンドは、利用可能なシンボル(変数と関数)を表示します。

外部依存関係を追加する

標準ライブラリに加えて、ki shellは外部依存関係もサポートしています。これにより、プロジェクト全体を作成することなく、サードパーティライブラリを試すことができます。

ki shellにサードパーティライブラリを追加するには、:dependsOnコマンドを使用します。デフォルトでは、ki shellはMaven Centralと連携しますが、:repositoryコマンドを使用して他のリポジトリを接続すれば、それらを使用することもできます。

ki shell external dependency