- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
Go 中没有文本预处理。与 Java 和其他类似语言一样,如果我想删除一段代码,我可以使用 const
值并用 if
包围代码。
如果我这样做,编译器是否优化了来自 AST 和生成代码的代码?还是每次都执行条件?
编辑:如果我想复制#ifdef
,最好的方法是什么?
最佳答案
带有常量条件的 If 语句与 #ifdef
不同,因为无论如何,里面的代码总是被编译。但是,编译器会在可能的情况下对其进行优化。考虑这个程序:
package main
import (
"fmt"
)
func main() {
if false {
fmt.Println("Hello, world!")
}
}
如果我们运行 go tool 6g -S test.go
,下面是 main
函数的汇编输出:
--- prog list "main" ---
0000 (test.go:7) TEXT main+0(SB),$40-0
0001 (test.go:11) RET ,
死代码消失了,所以它所做的就是返回。
如果您确实需要有条件地编译部分代码,最好通过构建系统来完成。
关于go - const if 语句是否与 Go 中的 #ifdef 宏做同样的事情?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11252846/
那就是我的第一个使用MVVM的项目,MVVM light。 我有一个列表框,该列表框从PersonList Observable集合中刷新,正常添加和删除刷新。问题是编辑项目时。 我寻找了解决该问题的
这个问题在这里已经有了答案: How do I return the response from an asynchronous call? (41 个回答) 关闭10 年前。 我有这个代码 var
我有一个很大的配置文件(用户),我需要将其转到正确的位置并设置一些默认值。 因为我有一个安装程序类,所以我在其中的配置文件中添加了一些参数设置,但在安装程序文件夹中创建了配置文件。 确保这些默认参数只
|AA|多对多|BB|多对多 |CC| 与连接表映射成为 |AA|--|AA_BB|--|BB|--|BB_CC|--|CC| (抱歉,我无法发布图片,声誉低) 编辑:简短的问题是为什么如果a创建Aa
我想创建这个例子 GET /my_store/products/_search { "query" : { "filtered" : { "query"
AWS 为我们提供了 Athena 来运行无服务器 Hive 查询,Azure 是否有任何服务可以让我们运行无服务器 Hive 查询。 最佳答案 @ clown 。我相信您正在寻找的 Hive 的 A
这让我抓狂......这很好用: jQuery(document).ready(function(){ setTimeout(function(){ jQuer
我是一名优秀的程序员,十分优秀!