4

Goでプロジェクトに取り組んでいます。整理のために、コードをファイルに分割しました。

  • サーバー関連の機能はserver.goにあります
  • データベースの処理はdb.goで行われます
  • グローバル変数はtypes.goにあります

types.goで変数を宣言し、document_rootmain.go次のように定義しました。

document_root,error := config.GetString("server","document_root")

server.goには、要求されたファイルのHTTPステータスコードを生成する関数があります。これは次のことを行います

_, err := os.Stat(document_root+"/"+filename);

コンパイルすると、次のエラーが発生します。

「document_rootが宣言され、使用されていません」

私は何が間違っているのですか?

4

1 に答える 1

7

types.godocument_rootで、パッケージスコープで宣言していると想定しています。もしそうなら、問題はこの行です:

document_root, error := config.GetString("server", "document_root")

ここではdocument_root、関数に対してローカルな別の変数を意図せずに作成していmainます。次のように書く必要があります。

var err error
document_root, err = config.GetString("server", "document_root")
于 2012-10-11T01:49:51.590 に答える