golang はどのようにして他の言語との共同開発を実現するのでしょうか?
Mar 03, 2024 am 10:12 AM異なる言語間の共同開発では、インターフェイスの統一やデータ送信などの問題が伴うことがよくあります。この記事では、Golang と Python を例として、これら 2 つの言語間で共同開発を実行する方法について説明し、具体的なコード例を示します。
1. インターフェースの統一
Golang では、インターフェースはオブジェクトの動作を記述するメカニズムです。インターフェイスを通じて、異なる言語間の共通の動作を定義できます。たとえば、情報を出力するためのインターフェイスを定義できます。
package main import "fmt" type Printer interface { Print(string) } type PythonPrinter struct{} func (pp PythonPrinter) Print(message string) { fmt.Println("Python Printer:", message) } type GoPrinter struct{} func (gp GoPrinter) Print(message string) { fmt.Println("Go Printer:", message) } func main() { var p Printer p = PythonPrinter{} p.Print("Hello, Python") p = GoPrinter{} p.Print("Hello, Golang") }
上記のコード例では、Printer
インターフェイスを定義し、2 つの印刷メソッド PythonPrinter
と GoPrinter
をそれぞれ実装しました。インターフェースを利用することで、異なる言語間の動作を統一することができます。
2. データ送信
実際の共同開発においては、データ送信が非常に重要です。以下では、Golang と Python 間のデータ転送を例として、Golang から Python へ、および Python から Golang へデータを送信する方法を示します。
1. Golang は Python にデータを送信します
package main import ( "os/exec" ) func main() { cmd := exec.Command("python3", "-c", "print('Hello from Python!')") cmd.Run() }
上記のコードでは、Golang は exec
パッケージを通じて Python スクリプトを実行し、Python 関数へのデータ送信を実現しています。
2. Python から Golang にデータを送信
# script.py import subprocess subprocess.call(['go', 'run', 'receiver.go'])
// receiver.go package main import "fmt" func main() { fmt.Println("Hello from Golang!") }
Python で Golang プログラムを呼び出すことで、Python から Golang にデータを送信する機能を実現できます。この例では、Python スクリプト script.py
が receiver.go
という名前の Golang プログラムを呼び出します。
3. 概要
この記事では、Golang と Python の間で共同開発を実現する方法を紹介し、インターフェイスの統合とデータ転送の問題に焦点を当て、具体的なコード例を示します。異なる言語間の共通メカニズムを深く理解することで、異なる言語の共同開発をより適切に実現できます。この記事が読者のお役に立てば幸いです。
以上がgolang はどのようにして他の言語との共同開発を実現するのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

人気の記事

人気の記事

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック











Golang データベース接続用の接続プールを構成するにはどうすればよいですか?

Golang を使用してファイルを安全に読み書きするにはどうすればよいですか?

Golang フレームワーク アーキテクチャの学習曲線はどれくらい急ですか?

Golangでリストからランダムな要素を生成するにはどうすればよいですか?

Golang フレームワークでのエラー処理のベスト プラクティスは何ですか?
