go中的net包提供了这个功能:
func ResolveUnixAddr(net, addr string) (*UnixAddr, error)
Run Code Online (Sandbox Code Playgroud)
string参数net给出网络名称"unix","unixgram"或"unixpacket".
我猜网络名称的含义如下:
unixgram:作为socket()函数中的类型SOCK_DGRAM,由网络包中的ListenPacket()使用.
unixpacket:作为socket()函数中的SOCK_STREAM类型,由net包中的Listen()使用.
unix:要么
我对吗?
我有一个Go接口函数,它以接口{}作为参数.当我用字符串调用函数时,它将转换一个alloc/ns.为什么?
func foo(...interface{}) error {
....
}
func use() {
var str = "use it"
e := foo(str)
_ = e
}
Run Code Online (Sandbox Code Playgroud) 为什么Go编译器会产生大的二进制文件?
例如,在编译下面的代码后,我得到一个1.8 MB的exec文件
package main
import "fmt"
func main(){
fmt.Println("Hello World")
}
Run Code Online (Sandbox Code Playgroud)
我在Ubuntu和Win7上测试了上面的代码,结果是一样的!
我还用+70行代码编写了一个更大的程序,结果二进制文件又惊人地1.8 MB(实际上有几个字节差异).我想知道Go编译器将什么转储到二进制文件中.
我有两个结构如下,我需要使用模板包在模板上呈现数据.我收到这个错误
<.Email>: Email is not a field of struct type Notes.
问题似乎是只有范围结构的字段似乎在范围循环中可用,所以我想知道如何从范围结构外部导入字段(例如电子邮件字符串).
这种行为非常意外.
type notes struct{
Note string
sf string
}
type uis struct{
notes []Note
Email string
}
var ui uis
Run Code Online (Sandbox Code Playgroud)
HTML
{{range .notes}}
{{.Email}} {{.sf}}
{{end}}
Email {{.Email}}
Run Code Online (Sandbox Code Playgroud)
我检查过godocs但它们似乎没用.
我不知道如何使用Scanf功能.假设我想在扫描时输入数字10.通过这样做,输出不应该是0xA?
另外,如何使用具有两个或更多扫描参数的函数(例如fmt.Scanf("%x", &e, &f, &g))?
package main
import (
"fmt"
)
func main() {
var e int
fmt.Scanf("%#X", &e)
fmt.Println(e)
}
Run Code Online (Sandbox Code Playgroud) package main
import "fmt"
func main(){
sample := map[string]string{
"key1":"value1",
"key2":"value2",
"key3":"value3",
}
for i := 0;i<3;i++{
fmt.Println(sample)
}
}
Run Code Online (Sandbox Code Playgroud)
上面的代码只打印了一个map [string]字符串三次.
我希望它是一个固定的输出,但它显示如下:
map[key3:value3 key2:value2 key1:value1]
map[key1:value1 key3:value3 key2:value2]
map[key2:value2 key1:value1 key3:value3]
Run Code Online (Sandbox Code Playgroud)
它有所不同!
而在python中:
#!/bin/env python
#encoding=utf8
sample = {
"key1":"value1",
"key2":"value2",
"key3":"value3",
}
for i in range(3):
print sample
Run Code Online (Sandbox Code Playgroud)
输出:
{'key3': 'value3', 'key2': 'value2', 'key1': 'value1'}
{'key3': 'value3', 'key2': 'value2', 'key1': 'value1'}
{'key3': 'value3', 'key2': 'value2', 'key1': 'value1'}`
Run Code Online (Sandbox Code Playgroud) 如何从Go查看是从本地主机还是从外部访问网页?
如何为外部用户禁用某些功能?
我怎么能隐藏整个网站,比如"没有,这里什么都没有,端口8080关闭,移动".
我正在努力确保我的并发程序没有以下内容,
我找到了以下工具 http://blog.golang.org/race-detector
我尝试使用-race启用编译和运行,没有看到任何投诉.
有谁知道这是否会检查上述所有问题?在输出中没有收到任何投诉意味着该程序没有这些问题吗?
我正在关注 Rob Pike 去年 2012 年演讲中的 Go 并发模式示例(幻灯片来自此处:http : //talks.golang.org/2012/concurrency.slide#30)。
从示例“恢复序列”中,我不断收到错误消息:
prog.go:21: cannot use Message literal (type Message) as type string in send
prog.go:43: msg1.str undefined (type string has no field or method str)
prog.go:44: msg2.str undefined (type string has no field or method str)
prog.go:46: msg1.wait undefined (type string has no field or method wait)
prog.go:47: msg2.wait undefined (type string has no field or method wait)
Run Code Online (Sandbox Code Playgroud)
这是我的代码
type Message struct {
str string
wait chan bool
} …Run Code Online (Sandbox Code Playgroud) 我第一次尝试使用 Caddy。我希望能够为多个子域提供服务。Caddy 向 Let's Encrypt 请求 SSL 证书。我已经设法让它在 caddyfile 中只有一个域名的情况下正常工作。
但是,假设我有
www.example.com, test.example.com {
... lots of settings
}
Run Code Online (Sandbox Code Playgroud)
我依靠 Let's Connect 服务器回调这些子域之一(即不使用 DNS TXT 记录)。但这引发了一些问题:
(在上面的示例中只有两个子域,但实际上我想知道如何让它与两个以上的子域一起使用。)
-
编辑:当我尝试这个时test.example.com,我收到一个错误(注意:我隐藏了我的实际域名):
Activating privacy features...2016/11/21 07:47:41 [www.example.com] failed to get certificate: acme: Error 403 - urn:acme:error:unauthorized - Invalid response from http://www.example.com/.well-known/acme-challenge/ALmqQ8Vl5fvPF91tvqw2zigHlPoRRgTGR2GaLtgX3-A [134.92.240.68]: 404
Run Code Online (Sandbox Code Playgroud)
Caddy 打印更多细节,本质上是重复相同的信息,然后终止。