9
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Dart: String.fromEnvironment()の値が取得できない

Posted at

問題

dart2.6のdart2nativeで遊ぼうとしたらString.fromEnvironment()でハマりまくったのでメモがてら記事にしました。
dart2nativeコマンドで-Dフラグをつけて定数を埋め込んでワンバイナリにできるようなので試しに下記のコードで確認しようとしたところ・・・。

main.dart
void main() {
  print(String.fromEnvironment('hoge'));
}
$ dart2native -Dhoge=fuga main.dart -o main
$ ./main
null

nullしかでない!!
どこが悪いのか一向に変わらず2時間ほど格闘していました。。。

結論

constつけよう

main.dart
void main() {
  print(const String.fromEnvironment('hoge'));
}

String.fromEnvironment()をconstで宣言しなければいけなかったというしょーもないオチです。
そもそもfromEnvironmentって環境変数を取れそうみを出しつつそうじゃない部分が気に食わないのですが。
ちなみに環境変数はdart:ioPlatform.environment['環境変数名']なので覚えておきましょう。

最後に

dart2nativeString.fromEnvironment()でワンバイナリ+埋め込まれた定数を扱えるようになったのでそろそろサーバサイドDartに本気を出すのもいいのではないかと思う今日この頃です。
手始めにgoで書いてたcliツールとかdartで書き直してみようかと思います。
これを機にflutter以外のdartにも目を向けてもっとdartにのめり込みましょう :thumbsup:

9
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?