小编Dav*_*ney的帖子

是否可以在套接字上取消?

在调用listen(fd,backlog)后,是否可以在套接字上取消删除?

编辑:我没有弄清楚自己的错误.我希望能够暂时解除套接字的问题.调用close()将使套接字处于M2LS状态并阻止我重新打开它(或者更糟糕的是,某些恶意程序可能绑定到该套接字)

暂时不显示将是向上游负载均衡器发出信号的一种方式(可能不是最佳方式)此应用无法接受此刻的任何更多请求

sockets linux posix listen

12
推荐指数
2
解决办法
1万
查看次数

如何检查我的程序是否针对32位或64位处理器进行编译?

是否有任何标准方法来检查操作系统是32位还是64位?我检查了运行时和os包,但找不到. http://play.golang.org/p/d6NywMDMcY

package main

import "fmt"
import "runtime"

func main() {
    fmt.Println(runtime.GOOS, runtime.GOARCH)
}
Run Code Online (Sandbox Code Playgroud)

go

7
推荐指数
1
解决办法
2114
查看次数

指针接收器的nil不一致(Go bug?)

当我偶然发现这种明显的不一致时,我正在做一个简单的链表接口来了解Go接口.nextT总是零,但返回值next()不是.

package main

import (
    "fmt"
)

type LinkedList interface {
    next() LinkedList
}

type T struct {
    nextT *T
}

func (t *T) next() LinkedList {
    //uncomment to see the difference
    /*if t.nextT == nil {
         return nil
    }*/
    return t.nextT//this is nil!
}

func main() {
    t := new(T)
    fmt.Println(t.nextT == nil)

    var ll LinkedList
    ll = t
    fmt.Println(ll.next() == nil)//why isn't this nil?
}
Run Code Online (Sandbox Code Playgroud)

next()我得到的没有零检查(我不应该这样做)

true
false
Run Code Online (Sandbox Code Playgroud)

有了它,我得到了预期的结果

true
true
Run Code Online (Sandbox Code Playgroud)

我是否因为某种原因发现了一个错误或者这个意外的故意?使用zip安装在没有MSI的Go版本1的Windows上运行

linked-list go

5
推荐指数
1
解决办法
201
查看次数

Go程序中的三个背景goroutines是什么?

Go似乎总是在任何给定时间运行至少4个goroutines.还有哪三个不是主要的goroutine?

http://play.golang.org/p/MQBiLmHXBK

package main

import (
    "fmt"
    "runtime"
)

func main() {
    fmt.Println(runtime.NumGoroutine()) //4
}
Run Code Online (Sandbox Code Playgroud)

go

5
推荐指数
1
解决办法
578
查看次数

如果结构A嵌入在B中,那么A访问方法和B字段的方法可以吗?

  struct A {}

  func (a *A) BName(id int) string {
     return a.Name
  }

  struct B {
     *A
     Name string
  }

  func main() {
     b := &B{Name: "abc"}
     fmt.Println(b.Name)
  }
Run Code Online (Sandbox Code Playgroud)

代码失败,我想知道如何编写代码来实现,A.BName可以访问B struct属性Name

struct go

1
推荐指数
1
解决办法
123
查看次数

为什么每次重新启动程序时math/rand都会返回相同的结果?

我有点困惑.我有一个随机字符串生成器,这里是代码:

package utils

import (
  "fmt"
  "math/rand"
)

var chars = []rune("abcdefghijklmnopqrstuvwxyz0123456789")

func RandSeq(n int) string {
  b := make([]rune, n)
  for i := range b {
    b[i] = chars[rand.Intn(len(chars))]
  }
  fmt.Println(string(b))
  return string(b)
}
Run Code Online (Sandbox Code Playgroud)

每次运行时,它都会生成一个新的随机字符串,但是如果我重新启动服务器,结果会重复.以下是一些结果:

go run main.go
fpllngzieyoh43e0133ols6k1hh2gdny
xxvi7hvszwk1b182tvjzjpezi4hx9gvm
kir0xcta0opsb5qipjzb3h3x9kcegta5
m1zcv5drxckn42gb50anxndsckjdwgfw
5japz01zicapy9eqixuc9uehq235v48c
51wgg1gypq4s9miwn1dxkjqd614m58f0
fyy29g6ujmxbouxshy2plmkmhlnmdbfh
f7kq8u26873eql4yyp7fyilbb72nrtlc

go run main.go
fpllngzieyoh43e0133ols6k1hh2gdny
xxvi7hvszwk1b182tvjzjpezi4hx9gvm
kir0xcta0opsb5qipjzb3h3x9kcegta5
m1zcv5drxckn42gb50anxndsckjdwgfw
5japz01zicapy9eqixuc9uehq235v48c
Run Code Online (Sandbox Code Playgroud)

知道为什么会这样吗?

string random go

0
推荐指数
1
解决办法
195
查看次数

标签 统计

go ×5

linked-list ×1

linux ×1

listen ×1

posix ×1

random ×1

sockets ×1

string ×1

struct ×1