加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Go语言的自重写程序

发布时间:2020-12-16 19:01:42 所属栏目:大数据 来源:网络整理
导读:UNIX/Go语言之父 Ken Thompson 在1983年的图灵奖演讲 Reflections on Trusting Trust 就给出了一个C语言的自重写程序. 最短的C语言自重写程序是 Vlad Taeerov 和 Rashit Fakhreyev 的版本: main(a){printf(a="main(a){printf(a=%c%s%c,34,a,34);}",34);} 下

UNIX/Go语言之父 Ken Thompson 在1983年的图灵奖演讲 Reflections on Trusting Trust 就给出了一个C语言的自重写程序.

最短的C语言自重写程序是 Vlad Taeerov 和 Rashit Fakhreyev 的版本:

main(a){printf(a="main(a){printf(a=%c%s%c,34,a,34);}",34);}

下面的Go语言版本自重写程序是 rsc 提供的:

/* Go quine */
package main
import "fmt"
func main() {
	fmt.Printf("%s%c%s%cn",q,0x60,0x60)
}
var q = `/* Go quine */
package main
import "fmt"
func main() {
	fmt.Printf("%s%c%s%cn",0x60)
}
var q = `

在 golang-nuts 中还有更短的版本(Aram H?v?rneanu):

package main;func main(){print(c+"x60"+c+"x60")};var c=`package main;func main(){print(c+"x60"+c+"x60")};var c=`

其实国内出版的<Go语言.云动力>的1.3节也给出了一个版本(和rsc的类似).

关于其他各种语言的自重写程序,可以参考这个网站:

  • http://www.nyx.net/~gthompso/quine.htm

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读