ホームページ バックエンド開発 Python チュートリアル IPython に似た Go 言語用対話型プログラミング インターフェイス

IPython に似た Go 言語用対話型プログラミング インターフェイス

Nov 23, 2016 am 09:27 AM
python

ブレット・ビクターの原理発明は、私がこれまで見た中で最も刺激的で衝撃的なデモンストレーションの 1 つです。元 Apple UI の第一人者は 2012 年にこのデモンストレーションを行っていましたが、その影響力は衰えていません。プログラムを作成するプロセスに何らかの変更があれば、プログラマが結果を確認できるように、つまり作成者が実際にその結果を確認できるようにする必要があります。彼らが作成したものについての時間的なフィードバック。

私は以前に Python を使用したことがあり、IPython Notebook がとても気に入っています。IPython Notenook を使用すると、いくつかのプロトタイプをすばやく完成させることができてとても便利です。プロジェクトの都合上、Go 言語を使い始めたいのですが、Go を使用できる IPython 環境はあるのでしょうか? Zhihu にも関連する投稿がありますが、残念ながら有効な答えは得られません。

小さな宿題をいくつかしましたが、結果は完璧ではないので、ここで共有します。

公式バージョン Go プレイグラウンド

Go 言語の学習を開始するための最良のリソースは公式ツアーです。学習と Go サンプル プログラムを同時に実行して、結果を直接取得できます。原則に基づいて発明するというコンセプトを完全に体現しています。

IPython に似た Go 言語用対話型プログラミング インターフェイス

このツアーには Go Playgound が埋め込まれています。プロジェクトのコードは github で見つけることができます。

IPython に似た Go 言語用対話型プログラミング インターフェイス

このプロジェクトには、プログラム動作のセキュリティを確保するためのフロントエンドとコンテナ化されたバックエンドのサンドボックスが含まれています。

ただし、Go Playground にはいくつかの制限があります:

ユーザー定義のパッケージをインポートできません

エディターが弱く、構文の強調表示、プロンプト、アンドゥはありません...

Ipython のようなセグメント化された操作はありません

Go の XIAM バージョン遊び場

IPython に似た Go 言語用対話型プログラミング インターフェイス

XIAM の囲碁遊び場は、公式遊び場に基づいて大幅に改良されました。含まれるもの:

ユーザー定義パッケージのサポート

安全でないサンドボックスのサポート、ユーザーはネットワーク、ファイルシステムなどにアクセス可能

フロントエンドのコンテナ化

カスタムパッケージを使用したい場合は、Dockerfileを変更する必要があります対応するサンドボックスの

FROM xiam/go-playground/unsafebox

RUN go get github.com/myuser/mypackageRUN go get github.com/otheruser/otherpackage

ENTRYPOINT ["/go/bin/sandbox"]
ログイン後にコピー

その後、コンテナのイメージを再構築するだけです。

カスタム パッケージの問題は解決しましたが、このエディターはまだ弱すぎて、IPython のセグメント化された対話が欠けています。もっと良いものはありますか?

GopherNotes

IPython に似た Go 言語用対話型プログラミング インターフェイス

Jupyter の Notebook は実際にさまざまな言語カーネルをサポートできます。GopherNotes プロジェクトは Jupyter 用の Go 言語カーネルを提供します。

このプロジェクトは、現在はメンテナンスされていない Gore (igo カーネルに基づく) からインスピレーションを受けています。

IPython に似た Go 言語用対話型プログラミング インターフェイス

上記は Gophernotes を使用して行ったテストです。ループを実行する場合、In[7] に 1 行で記述すると、すべて OK になります。しかし、In[8]を3行書くと正しい結果が出力されません。

バックグラウンドで表示されるエラー:

Error running goimports:
/tmp/979860191/func_proxy.go:4:4: expected declaration, found 'for'
[I 08:18:56.621 NotebookApp] Saving file at /Untitled.ipynb
ログイン後にコピー


このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PythonインタープリターはLinuxシステムで削除できますか? PythonインタープリターはLinuxシステムで削除できますか? Apr 02, 2025 am 07:00 AM

Linux Systemsに付属するPythonインタープリターを削除する問題に関して、多くのLinuxディストリビューションは、インストール時にPythonインタープリターをプリインストールし、パッケージマネージャーを使用しません...

Pythonでのカスタムデコレータのパイランスタイプ検出の問題を解決する方法は? Pythonでのカスタムデコレータのパイランスタイプ検出の問題を解決する方法は? Apr 02, 2025 am 06:42 AM

Pythonプログラミングでカスタムデコレーターを使用する場合、Pylance Type検出問題解決策デコレーターは、行を追加するために使用できる強力なツールです...

Pythonの信号を介して親プロセスを殺した後に子プロセスも終了することを確認する方法は? Pythonの信号を介して親プロセスを殺した後に子プロセスも終了することを確認する方法は? Apr 02, 2025 am 06:39 AM

子どものプロセスを使用して親プロセスを殺すときに実行され続ける子プロセスの問題と解決策。 Pythonプログラミングでは、信号を通じて親のプロセスを殺した後、子のプロセスはまだ...

Python 3.6にピクルスファイルをロードするときに「__Builtin__」モジュールが見つからない場合はどうすればよいですか? Python 3.6にピクルスファイルをロードするときに「__Builtin__」モジュールが見つからない場合はどうすればよいですか? Apr 02, 2025 am 07:12 AM

Python 3.6のピクルスファイルのロードレポートエラー:modulenotFounderror:nomodulenamed ...

HTTPrunnerのプロジェクトを作成するときに発生したエラー問題を解決する方法は? HTTPrunnerのプロジェクトを作成するときに発生したエラー問題を解決する方法は? Apr 02, 2025 am 06:33 AM

httprunnerによる足場プロジェクトの作成におけるエラーの問題を解決します。インターフェイステストにHTTPrunnerを使用する場合、その足場関数はプロジェクトを作成するためによく使用されます。 �...

Debian文字列は、複数のブラウザと互換性があります Debian文字列は、複数のブラウザと互換性があります Apr 02, 2025 am 08:30 AM

「DebianStrings」は標準的な用語ではなく、その特定の意味はまだ不明です。この記事は、ブラウザの互換性について直接コメントすることはできません。ただし、「DebianStrings」がDebianシステムで実行されているWebアプリケーションを指す場合、そのブラウザの互換性はアプリケーション自体の技術アーキテクチャに依存します。ほとんどの最新のWebアプリケーションは、クロスブラウザーの互換性に取り組んでいます。これは、次のWeb標準と、適切に互換性のあるフロントエンドテクノロジー(HTML、CSS、JavaScriptなど)およびバックエンドテクノロジー(PHP、Python、Node.jsなど)を使用することに依存しています。アプリケーションが複数のブラウザと互換性があることを確認するには、開発者がクロスブラウザーテストを実施し、応答性を使用する必要があることがよくあります

See all articles