go - 避免 cgo 导出函数文档中出现空行
问题描述
我正在用 Go 编写一个库,我正在使用 CGo 将其编译为本机库,但是当导出函数时,它们在函数声明和文档注释之间有这个烦人的空行。
例如,假设我的 go 文件中有这个
/**
* Prints an integer.
*
* @param p0 an integer to print.
*/
//export PrintInteger
func PrintInteger(val C.int) {
fmt.Printf("%v", val);
}
一旦它在我的 C 头文件中导出,它看起来像这样
/**
* Prints an integer.
*
* @param p0 an integer to print.
*/
extern void PrintInteger(int p0);
大多数情况下,该空行不是问题,但是在某些 IDE 上,在解析该头文件时,它们很难正确显示智能感知,从而使头的使用更加困难。特别是当您考虑 cgo重命名函数参数的方式时
有没有什么办法可以避免它在生成后不手动修改头文件?
编辑:
我发现我认为是 go 源代码中导致此问题的区域:
https://github.com/golang/go/blob/master/src/cmd/cgo/out.go#L922
解决方案
go 1.15 中应该包含对此的修复。
推荐阅读
- scala - Play 正在下载文件而不是流式传输
- c# - 库存中由材料(也是一个项目)制成的项目的数据模型
- wordpress - 如何在域上禁用 SSL
- python - 如何对以数字开头的每一行执行新查询
- php - 是否可以使用 PHP+ODBC 发送包含带有内部连接的子查询的查询?
- python - 如何从 Cassandra 并行化 pyspark 中的表加载
- java - 这段代码中如何使用super关键字调用父类的构造函数?
- rx-swift - “共享副作用”和“共享资源”的区别
- ios - 适用于 iOS 的 Google Maps SDK 返回模糊地图
- javascript - 当延迟为 0 秒时,在 for 循环中设置时间输出