標準愚痴出力

個人的なIT作業ログです。もしかしたら一般的に参考になることが書いているかもしれません(弱気

$GOEXPERIMENT を定義すると、runtime.Version() の値がかわる

package main

import (
    "runtime"
)

func main(){
    println(runtime.Version())
}

未定義の時:

C:> go run foo.go
go1.22.0

$GOEXPERIMENT に rangefunc を設定した時:

C:> env.exe GOEXPERIMENT=rangefunc go run foo.go
go1.22.0 X:rangefunc

余談

これの実験中に拙作の env for Windows に不具合が見付かった。go1.22.0 X:rangefuncが表示される前に、プロンプトが表示されるのだ。

さくっと修正した。

--- a/src/main.rs
+++ b/src/main.rs
@@ -32,7 +32,7 @@
                 println!("call {}", arg);
             }
             let param: Vec<String> = args.collect();
-            if let Err(err) = std::process::Command::new(arg).args(param).spawn() {
+            if let Err(err) = std::process::Command::new(arg).args(param).status() {
                 return Err(Box::new(err));
             } else {
                 return Ok(());