ホームページ  >  記事  >  バックエンド開発  >  golang viper設定をエラーなしでロードできるように期間を日数で指定するにはどうすればよいですか?

golang viper設定をエラーなしでロードできるように期間を日数で指定するにはどうすればよいですか?

PHPz
PHPz転載
2024-02-12 16:30:07811ブラウズ

如何提及以天为单位的持续时间,以便可以毫无错误地加载 golang viper 配置?

質問の内容

.env ファイルには次の 2 つの設定があります

リーリー

golang で設定を読み込むために使用される構造は次のとおりです

リーリー

設定をロードしようとすると、次のエラーが表示されます

リーリー

これはおそらく、max_token_expiry_days=30d 行で d タグが認識されないため、問題が発生していることを意味します。ただし、access_token_duration=30mm タグは、time では正常に機能します。 golang のduration はうまく解析できます。

時間パッケージのソース コードには、次の構造があります

リーリー

構成内で日数を表現する方法はありますか?

回避策

これは、時間文字列で呼び出された ParseDuration が単位サフィックスとして d をサポートしていないためです

有効な時間単位は、「ns」、「us」 (または「μs」)、「ms」、「s」、「m」、および「h」です。

曖昧さを解決するには、時間数 30d (つまり 720h) を使用することをお勧めします。

言語設計者が select を使用することにした理由を理解するには、golang/go の質問/説明も参照してください。 time.ParseDuration() が日数をサポートしないのはなぜですか? #17767

以上がgolang viper設定をエラーなしでロードできるように期間を日数で指定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。