- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
所以,最近几天的热门话题是 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/
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 7 年前。
我正在对新标签进行一些试验,并且已经遇到了第一个障碍。我想我应该通过实现经典棋盘游戏 Go/Baduk/Weiqi 的一个版本来开始尝试。 我使用 moveTo() 和 lineTo() 绘制了 xy
我注意到标准 Go 库 (Y0) 中定义了用于一阶、二阶和 N 阶贝塞尔函数(Y0、Y1、Yn)的函数。我似乎无法确定这些数学函数的实际应用会使它们变得如此重要以至于包含在标准库中。 有人能帮帮我吗?
我对 kubernetes 的 golang API 有一些疑问。 我应该使用哪一个? k8s.io/client-go 还是 k8s.io/kubernetes/pkg/client?有什么区别?
我正在处理需要 big.Float 类型的数字,我需要将它们分开。我知道 big.Int 有一个 .Div() 函数,但如果我是正确的,那会截断值并失去我使用 big.Float. 相关代码 func
http://golang.org/pkg/sort/ 这是来自 Go 的例子。 // OrderedBy returns a Sorter that sorts using the less fu
我正在尝试使用两种或多种编程语言实现一个带有 float 的程序。该程序确实说了 50k 次迭代,最终将误差降低到非常小的值。 为确保我的结果具有可比性,我想确保在不同语言中使用相同精度的数据类型。请
http://play.golang.org/p/xjs-jwMsr7 我有这个功能 func (e *MyError) Error() string { return fmt.Sprint
code : type ByteSlice []byte func (p *ByteSlice) Append(data []byte) { slice := *p slice = appen
我一直在 Node 和 Go 中尝试使用 WebSockets 和 HTTP/2 库。我的基本设置是创建客户端和服务器,从服务器重复发送文件并测量时间,直到每个文件在客户端可用。 令我惊讶的是,HTT
我是一名优秀的程序员,十分优秀!