有没有办法我可以在我的shell上设置一个环境变量,并在go程序退出后保持它?我尝试了以下内容
bash-3.2$ export WHAT=am
bash-3.2$ echo $WHAT
am
bash-3.2$ go build tt.go
bash-3.2$ ./tt
am
is your name
bash-3.2$ echo $WHAT
am
bash-3.2$
Run Code Online (Sandbox Code Playgroud)
代码是:
package main`
import (
"fmt"
"os"`
)
func main() {
fmt.Println(os.Getenv("WHAT"))
os.Setenv("WHAT", "is your name")
fmt.Println(os.Getenv("WHAT"))
}
Run Code Online (Sandbox Code Playgroud)
谢谢
我在查看bytes包.如果我使用bytes.Buffer定义一个缓冲区,那么下面的代码工作,我得到一个输出.但是,如果我尝试创建具有一定容量的缓冲区,然后尝试相同的代码,则会失败,并显示错误错误:无效字符'\ x00'正在查找值的开头.不知道如何解决它.
package main
import (
"bytes"
"encoding/json"
"fmt"
)
func main() {
var jsonBlob = []byte(`[
{"Name": "Platypus", "Order": "Monotremata"},
{"Name": "Quoll", "Order": "Dasyuromorphia"}
]`)
//var b bytes.Buffer
b := *bytes.NewBuffer(make([]byte, 20))
b.Write(jsonBlob)
fmt.Println(b.String())
var dat interface{}
err := json.Unmarshal(b.Bytes(), &dat)
if err != nil {
fmt.Println("error:", err)
}
fmt.Printf("%+v", dat)
}
Run Code Online (Sandbox Code Playgroud)
使用bytes.Buffer输出Run
[
{"Name": "Platypus", "Order": "Monotremata"},
{"Name": "Quoll", "Order": "Dasyuromorphia"}
]
[map[Name:Platypus Order:Monotremata] map[Name:Quoll Order:Dasyuromorphia]]
Program exited.
Run Code Online (Sandbox Code Playgroud)
使用bytes.NewBuffer运行输出
[
{"Name": "Platypus", "Order": "Monotremata"},
{"Name": "Quoll", "Order": "Dasyuromorphia"} …Run Code Online (Sandbox Code Playgroud) 我有一个包含多行查询的文件。我想一一阅读并打印。就像是 :
临时SQL
select * from table1;
select *
from table2;
select 1;
Run Code Online (Sandbox Code Playgroud)
由于我可以进行多行查询,因此我想使用; \ n作为分隔符。那可能吗 ?有没有更好的方法可以代替bufio.ReadString?
go ×3