- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - phát hiện rò rỉ bộ nhớ Ruby/Ruby on Rails
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
编写输出有效 go 代码的 go 应用程序可能最好使用内置的“go”包及其一些子包(“go/ast”、“go/token”、“go/printer”、等)。
要创建字符串文字表达式,您需要创建一个 ast.BasicLit:
l := &ast.BasicLit{Kind: token.STRING, Value: "\"Hello world!\""}
在我的 go 程序中,我有一个字符串,我需要创建一个 ast.BasicLit,它在输出时会产生一个忠实地再现相同字符串的字符串文字。为了做到这一点,我必须从字符串中派生一个字符串,该字符串代表代表该字符串的 go-syntax 文字。 (这个概念太元了,很难描述清楚。)
我在 go 中寻找的基本上等同于 Python 内置的 repr()。您可以将此操作称为 JavaScript 中 eval() 所做操作的“相反”操作。
一个例子应该有助于说明我在寻找什么。
gói chính
nhập khẩu (
"repr"
)
// Assume the operation I'm hoping to find is implemented in the package "repr" as a function called "StrLit()" with the signature "func(v string) string".
hàm main() {
println(repr.StrLit("Hello World!"))
println("a")
println(repr.StrLit("a"))
println(repr.StrLit(repr.StrLit("a")))
println(repr.StrLit("This is a\ntest!"))
println(repr.StrLit("As is\x00this!"))
}
调用此程序时应输出以下内容:
"Xin chào thế giới!"
Một
"Một"
"\"a\""
"This is a\ntest!"
"As is\x00this!"
虽然我的具体问题与字符串有关,但我对适用于任何类型(整数类型、浮点类型,甚至复杂类型)的值的通用解决方案感兴趣,如下所示:
gói chính
nhập khẩu (
"repr"
)
// Assume this time that repr.StrLit() has the signature "func(v interface{}) string".
hàm main() {
var a int = 5
println(repr.StrLit(a))
var c complex128 = 1.0+1.0i
println(repr.StrLit(c))
}
这个程序应该输出:
5
1.0+1.0i
我已经仔细阅读了标准库文档,但还没有真正找到与我正在寻找的内容相近的内容。希望你们能帮助我。
Cảm ơn trước!
câu trả lời hay nhất
你想要http://golang.org/pkg/fmt/#Sprintf使用 %#v 格式化程序。
lit := fmt.Sprintf("%#v", "foo")
将打印出“foo”
Xem thêm:http://play.golang.org/p/nFAKFObXE5以各种不同类型的示例为例,包括结构等复杂文字。
fmt 包有很多有用的格式动词,所以一定要查看它的文档中的概要。
关于golang : given a string, 输出一个等效的 golang 字符串文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17779371/
由于 typescript 现在支持条件类型,我决定进行一些元编程,为 VSCODE intellisense 添加更多 flavor 。但是,虽然使用 A extends B 可以轻松分离其他类型,
我有一个 php var,它在回显时将 JS 函数写入页面的源代码。该函数循环遍历 CSV,因此其中包含以下行: $str="var lines = data.split('\n');"; 目前,当回
我有以下代码: name= "a"; value="b" $.post("ajax.php", {name:value}).... 然而 ajax.php 将收到 name=b 而不是 a=b。 我如
以下情况: var myVehicle = { brand: 'Tesla' }; var isMoving = Symbol(); var currentStatus = Symbol(); myV
我正在为 Python 翻译器编写 JavaScript,“\8”和“\9”给我带来了很多问题。根据文档,像“\8”或“\9”这样的东西是非法的,因为它们不是有效的八进制转义符。 Esprima pa
我有一个简单的 LinearLayout。当我将 android:background 添加到 LinearLayout 时,TextView 不再可见。 我不明白什么?
在尝试获得某种效果时遇到困难: 我有一张图片。我想将鼠标悬停在它上面。它应该变黑并弹出一些文本。 例子^ 执行此操作最简单/最简单的设置是什么?最好只有 HTML 和 CSS 注意:该元素需要在 CS
考虑以下代码: #include void f(const char * str) { str = "java"; } void main (int argc, char * argv[])
我想在 MySQL 中插入一条具有非 ASCII Unicode 字符的记录,但我在一个不允许我轻松键入非 ASCII 字符的终端上。如何在 MySQL 的 SQL 语法中转义 Unicode 文字?
Perl脚本batchReplace.pl可以用来批量替换文件中的文字/代码。可在指定目录中查找指定类型的文件,并递归检查子目录;在输出文件时复制输入文件的目录结构。 [附件]Win32应用程序b
我知道从 flutter 应用程序共享的官方包。 https://pub.dartlang.org/packages/share 共享文本和 url 很容易,但我想共享来自服务器的图像意味着它是 UR
在 Qt 文档中,它说 qreal是一个 Typedef for double unless Qt is configured with the -qreal float option. 这基本上意味
我想让 idris 证明 testMult : mult 3 3 = 9有人居住。 不幸的是,这是键入为 mult (fromInteger 3) (fromInteger 3) = fromInte
如您所知,Apple 为 NSNumber、NSDictionary、NSArray 等类提供了 @literals,因此我们可以通过这种方式创建对象,例如 NSArray *array = @[ob
有没有办法在类型上定义公共(public)文字(C# 中的公共(public) const)?显然 let 类型中的绑定(bind)必须是私有(private)的,并且 Literal 属性不能应用于
为什么下面的语法不能识别 bool 值? 我已经将其与 Java 和 GraphQL 的语法进行了比较,但不明白为什么它不起作用。 给定以下语法,解析如下: foo = null // foo = v
当我需要一个文字来测试一个带有序列的函数时,我注意到我自己的习惯比列表更频繁地使用向量。 IE。 : (map inc [1 2 3]) 但不是: (map inc (list 1 2 3)) 虽然它
是否可以在sqlite中制作类似的东西? FOREIGN KEY(TypeCode, 'ARawValue', IdServeur) REFERENCES OTHERTABLE(TypeCode, T
在我这学期的系统软件类(class)中,我们正在学习汇编程序和其他系统软件。在阅读整个类(class)时,我遇到了LITERALS主题。 对文字和立即操作数进行了比较,发现它们之间的唯一区别是文字不被
我正在使用命令行语法编写一个 gstreamer 管道来发送视频流,并想用它发送数据。我认为可行的一种解决方案是将数据作为字幕文件发送。 我可以使用以下管道通过 rtp 多路复用视频和字幕文件: gs
Tôi là một lập trình viên xuất sắc, rất giỏi!