Go 生成转义字符

The*_*hat 2 go

我有一个 go generate 指令,如下所示:

//go:generate myprog -someName thisname -data 'Request: Typ "." callMe, Rsp:  MyTyp "." close'
Run Code Online (Sandbox Code Playgroud)

问题是程序只接收-someName标志值(“thisname”)。我认为由于-data某些原因该标志被丢弃。知道为什么吗?如果我直接从命令行执行程序,它就可以工作,所以我猜这是一个特定于 go 的问题。

Vol*_*ker 5

从 go generate https://docs.google.com/document/d/1V03LUfjSADDooDMhe-_K59EgpTEm3V8uvQRuNMAEnjg/edit的设计文档:

参数是空格分隔的标记(或双引号字符串),当它运行时作为单独的参数传递给生成器。

所以如果你想传递一个包含空格的参数,你将不得不双引号它们。您使用了在您的 shell 中有效但不适用于的单引号go generate