小编Joh*_*don的帖子

使用Go反编译已编译的程序

我用它构建了一个简单的可执行程序Go.

我已经将代码编译成静态二进制程序.

我想反编译输出二进制文件并获取Go源代码.

这可能吗?

compiler-construction decompiling go

26
推荐指数
3
解决办法
2万
查看次数

去破坏者?

我知道在Go中没有析构函数,因为从技术上讲没有类.因此,我initClass用来执行与构造函数相同的功能.但是,有没有办法在终止时创建一些模仿析构函数的东西,比如关闭文件?现在我只是打电话defer deinitClass,但这是相当hackish我认为一个糟糕的设计.什么是正确的方法?

go

25
推荐指数
3
解决办法
2万
查看次数

矩阵变换; 概念和理论,是否有实际学习的免费资源?

我最近很乐意从坐标渲染图表和图表,我很着迷使用矩阵来转换坐标空间.

我已经能够成功地缩放和反转二维坐标空间,但现在我的胃口被激发了.:)

我在哪里可以获得关于矩阵,矩阵数学的清晰,信息丰富,(免费)的教育材料,特别是适用于二维和三维空间?

math matrix hyperlink coordinates

23
推荐指数
3
解决办法
3038
查看次数

Go的ctag数据库

如何为Go源生成标签文件

在mac中,我安装了繁琐的ctags,并在源目录中尝试了以下命令

ctags -f gosource.tags -R `pwd`
Run Code Online (Sandbox Code Playgroud)

但是,它不考虑*.go文件.我必须使用-h选项吗?但是,根据手册,它不仅仅适用于头文件吗?

请给我正确的命令,以便我可以使用带有vim的标签文件.我也更喜欢绝对路径,以便我可以将文件保存在任何地方

谢谢.

编辑:我假设当前的ctags支持Go,请参阅http://groups.google.com/group/golang-nuts/browse_thread/thread/3a4848db231b02c9.

但是,http: //ctags.sourceforge.net/languages.html尚未列出.

ctags go exuberant-ctags

23
推荐指数
3
解决办法
1万
查看次数

SVN同步vs更新到头(subclipse)

我对Subversion和Subclipse都很陌生,并且看到一些问题让我相信更新头部和同步之间存在差异.具体来说,我发现当我尝试恢复(使用subclipse历史记录)时,我经常会收到一条消息,说"无法从路径自己的未来历史中反转合并范围,请先尝试更新".我的同步应该确保我在REPO的分支中拥有所有文件的"head"版本,但是执行"Update to head"确实解决了问题...那么是什么给出了?我试图检查SVN控制台,看看有什么变化,但它不是很冗长.

想法?

我有第二个问题,但我假设第一个问题的答案将会阐明它.如果你很好奇并有时间阅读,我也会打字.这是场景......我从"生产"标签中分支了所有文件,并开始处理我的项目.在几次提交之后,我检查一个已更改文件的历史记录,并注意到"粗体"版本(根据文档,这应该是头部)低于我的所有提交.就好像我拥有的​​不是头脑.但是头部只是该项目的最新版本吗?所以我错过了什么.

感谢您的回复,并花时间阅读本文!

subclipse svn repository revert

22
推荐指数
2
解决办法
5万
查看次数

Go有回调概念吗?

我发现很多谈话都说Node.js因为回调地狱而糟糕,Go因为它的同步模型而很好.

我觉得Go也可以像Node.js一样回调,但是以同步的方式.因为我们可以传递匿名函数并做关闭事情

那么,为什么他们在回调视角中比较Go和Node.js就像Go不能成为回调地狱一样.

或者我误解了Go中回调和匿名函数的含义?

go node.js

22
推荐指数
2
解决办法
8933
查看次数

为什么Elixir在Ruby和Go中解决Project Euler#5的速度最慢?

更新:Elixir并不慢,我的算法是.我的算法甚至不是苹果对比.有关Ruby和Go等效算法,请参阅下面的Roman答案.还要感谢José,我的慢速算法可以通过添加前缀MIX_ENV = prod来显着加快.我已经更新了问题中的统计数据.

原始问题: 我正在研究多种语言的Project Euler问题,只是为了了解语言的效率和速度.在问题#5中,我们被要求找到可被1到20的所有数字整除的最小正数.

我用多种语言实现了该解决方案.以下是统计数据:

  1. 去1.4.2:0.58s
  2. Ruby 2.2 MRI:6.7s
  3. Elixir 1.0.5(我的第一个算法):57s
  4. Elixir 1.0.5(我的第一个算法,MIX_ENV = prod前缀):7.4s
  5. Elixir 1.0.5(Roman的Go等效算法):0.7s
  6. Elixir 1.0.5(Roman的Ruby等效算法):1.8s

为什么Elixir的表现如此之慢?我尝试在所有语言中使用相同的优化.警告:我是FP和Elixir新手.

我有什么办法可以改善Elixir的表现吗?如果您使用任何分析工具来找出更好的解决方案,请将它们包含在响应中吗?

在Go:

func problem005() int {
  i := 20
outer:
  for {
    for j := 20; j > 0; j-- {
      if i%j != 0 {
        i = i + 20
        continue outer
      }
    }
    return i
  }
  panic("Should have found a solution by now")
}
Run Code Online (Sandbox Code Playgroud)

在Ruby中:

def self.problem005
  divisors = (1..20).to_a.reverse

  number = 20 …
Run Code Online (Sandbox Code Playgroud)

performance elixir numerical-computing

19
推荐指数
2
解决办法
7349
查看次数

通过摘要代理身份验证Git

我想通过代理服务器做"git clone".问题是我的代理服务器使用摘要式身份验证.所以我既没有在git文档中找到,也没有帮助那些已经制作的人.

我通过谷歌搜索挖掘,我找不到任何有用的结果.

Thxs.

git proxy

18
推荐指数
2
解决办法
3万
查看次数

永远去项目的主要goroutine睡眠?

是否有任何API让maingoroutine永远睡觉?

换句话说,我希望我的项目总是运行,除非我停止它.

go blocking goroutine

18
推荐指数
2
解决办法
5214
查看次数

Go中当前正在运行的进程列表

如何获取Go中当前正在运行的进程列表?

操作系统包提供了一些功能:http://golang.org/pkg/os/ 但是没有任何内容可以查看正在运行的进程列表.

go

17
推荐指数
4
解决办法
1万
查看次数