System.out.println(message)
すべての場所で入力するのに飽きたら、Javaで次のようなメソッドを紹介します
private void print (Object message) {
System.out.println(message);
}
そして、私は必要に応じてJavaでprint (2)
&を呼び出しますprint ("hi")
。
GoLangでも同じことができますか?このような機能
func print(message ) {
fmt.Println (message)
}
Goは、多くの関数型プログラミング要素を備えた手続き型プログラミング言語です。
関数はGoの第一級の型であり、関数型の変数を作成したり、これらの変数に関数値を割り当てたり、それらを呼び出すことができます(変数に格納されている関数値)。
だからあなたは単に行うかもしれません:
var myprint = fmt.Println
myprint("Hello, playground")
myprint(1, 3.14, "\n", time.Now())
上記の出力(Go Playgroundで試してください):
Hello, playground
1 3.14
2009-11-10 23:00:00 +0000 UTC m=+0.000000001
上記のmyprint
変数の利点は、と同じシグネチャを持つことです。つまりfmt.Println()
、
func Println(a ...interface{}) (n int, err error)
はい、次のようなラッパー関数を作成することもできます。
func myprint(a ...interface{}) (n int, err error) {
return fmt.Println(a...)
}
そして、それはを呼び出すのと同じように機能fmt.Println()
しますが、変数の使用はそれほど冗長ではなく、実行時に関数値を変更できるという利点があります。これは、テストを作成するときに非常に便利です(例については、os.Exitシナリオのテストを参照してください)Go with Coverage information(coveralls.io/Goveralls))。
トピックの詳細:
さらにもう1つの可能性は「ドットインポート」を使用することですが、私はそれをお勧めしません。
import (
. "fmt"
)
func main() {
Println("Hello, playground")
}
「ドットインポート」を使用すると、修飾された識別子を使用しなくても、インポートされたパッケージのすべてのエクスポートされた識別子にアクセスできるようになります。仕様からの引用:インポート宣言:
.
名前の代わりに明示的なピリオド()が表示される場合、そのパッケージのパッケージブロックで宣言されているすべてのパッケージのエクスポートされた識別子は、インポート元のファイルのファイルブロックで宣言され、修飾子なしでアクセスする必要があります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加