このロガーを開発中です。このインポートは具体的に何を意味するのでしょうか?
リーリー リーリー例からわかるように、「組み込み」ログは上記の実装によって置き換えられています。公式/正式な仕様が見つかりません。おそらく、この関数がどのように呼び出されるのかわかりません。
これは、関数がパッケージ レベルで直接エクスポートされるという事実への単なる参照です。つまり、これらのエクスポートされたシンボルにアクセスするために、型や変数の参照は必要ありません。
..うーん。この例の例は withfields()
関数です。
これは「パッケージ レベル」でエクスポートされるため、関数を参照するために必要なのはパッケージ名 (またはエイリアス) だけです。
この場合、logrus
パッケージには log
というエイリアスが付けられているため、エクスポートする withfields()
関数は単純に呼び出すことができます。
対照的に、この例の info()
関数は、logrus
パッケージ内の別の型によってエクスポートされたシンボル (この場合は関数) を示しています。ここでの () 関数は、
logrus.entry 参照 (
withfields() 関数によって返される) で呼び出されます。
go では一般的です。何もエクスポートしないパッケージは誰にとってもあまり役に立ちません。 :)
これらは、パッケージ作成者が golang の標準
log パッケージと「互換性のある」パッケージを作成するためにこれを使用するため、特に
logrus の場合に呼び出されます (「パッケージ」も使用します)。 -レベル「エクスポート」)。
p> つまり、
logrus を
log にエイリアスすると、logrus は標準の
log パッケージの
superset を提供します。これは意図的なものです。これにより、log パッケージを使用する既存のコードは、
log 呼び出しを行うファイル内の import ステートメントを変更するだけで、非常に迅速に
logrus に変換できます。
以上が「パッケージレベルのエクスポート」とは何を意味しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。