gpt4 book ai didi

go - 30行围棋可以做什么?你能创建一个有用的、完整的程序来展示它的特性吗?

转载 作者:IT老高 更新时间:2023-10-28 12:59:44 25 4
gpt4 key购买 nike

所以,最近几天的热门话题是 Go ,来自谷歌的新语言。假设你们都是像我一样痴迷的编程语言极客,你们都已经下载、构建并运行了“Hello, 世界”程序(使用 UTF-8 的发明者编写的语言不是很好吗?) .你们都看过the tutorial , Effective Go ,以及其他一些文档。

现在,你打算用它做什么?

我希望看到一些展示 Go 强大功能的演示。你可以在一个简短的程序中做什么?展示你最好的示例代码。虽然在需求不断变化的项目过程中,与许多程序员组成的团队一起编写并维护了一个大型代码库,才能真正衡量一种语言,但看看你能在有限的代码确实有助于展示一种语言的表达能力。我希望看到能够真正发挥 Go 独特新功能的简短、完整的程序;不仅仅是片段或“Hello, World”。

所以,发布一些你用 Go 编写的很酷的代码。利用其独特的功能,例如用于并发的 goroutine 和 channel ,或基于接口(interface)的类型系统。你能写一个原始的聊天服务器,或者很酷的 IRC 机器人吗?实现一个可扩展到多核的并行 Mandelbrot 集?为一些小语言写一个解释器?你能在 30 行内全部完成吗?

我任意选择了 30 个,尽可能多地放入 Stack Overflow 代码块中,而不会溢出并获得滚动条;它应该足以在不打太多高尔夫球的情况下做一些有趣的事情,但又足够短以保持每个人的注意力以进行快速演示。例如,只需重新格式化,示例 web server应该能够适应(不计算数据)。

向我们展示你的 Go 代码!

最佳答案

这是我编写的一个 Web 代理,用于提供对需要 HTTP 基本身份验证的 Web 服务的未经身份验证的访问。我需要它来做一个内部的东西(并且仍在使用它):

package main

import (
"flag"
"log"
"net/http"
"net/url"
)

var target = flag.String("target", "http://www.google.com/", "Where to go.")
var addr = flag.String("listen", ":12345", "Address/port on which to listen.")
var auth = flag.String("auth", "", "Authorization header to add (optional).")

func main() {
flag.Parse()

targetUrl, uerr := url.Parse(*target)
if uerr != nil {
log.Fatalf("Error parsing target ``%s'': ", target, uerr.String())
}

proxy := http.ReverseProxy{Director: func(req *http.Request) {
req.URL.Scheme = targetUrl.Scheme
req.URL.Host = targetUrl.Host
req.Host = targetUrl.Host
if *auth != "" {
req.Header.Set("Authorization", *auth)
}
}}

log.Fatal(http.ListenAndServe(*addr, &proxy))
}

关于go - 30行围棋可以做什么?你能创建一个有用的、完整的程序来展示它的特性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1735073/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com