Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
 Go_IT技术博客_编程技术问答 - 「Fatal编程技术网」

Go Linux网络名称空间意外行为

所以我最近一直在玩弄网络名称空间。 我编写了一个简单的代码,构建了它,并注意到发生了一些非常奇怪的事情 代码如下: package main import ( "fmt" "log" "net" "os" "path" "syscall" ) const ( NsRunDir = "/var/run/netns" SelfNetNs = "/proc/self/ns/net" ) func main() { netN

SSH指纹与Golang

如何使用Go获取自己的ssh指纹 Finger, err := ssh.** log.Println(Finger) // 12:f8:7e:78:61:b4:bf:e2:de:24:15:96:4e:d4:72:53 密钥签名只是ssh wire格式的未编码密钥数据的加密散列 以下是从OpenSSH格式公钥解析ssh密钥并获取MD5指纹的基本示例: key, err := ioutil.ReadFile("/path/to/id_rsa.pub") if err != nil { l

Go 嵌入式结构反对这种情况

我们有三种类型: type A struct { B C } type B struct { x int y string } type C struct { z string } 由于匿名字段的字段和方法是如何的,我们可以访问匿名字段B的字段,就像 很明显,类型B&C嵌入在A中,因此我们希望A等同于: type D struct { x int y string z string } 你期望看到什么? 我们希望可以像这样编写类

Go 雨果挂了

我正在尝试使用名为dlv的Go调试器学习Hugo。我被卡住了。之后: go get -v github.com/gohugoio/hugo cd $GOPATH/src/github.com/gohugoio/hugo go build -gcflags="-N -l" dlv exec ./hugo -- -s /path/to/the/projectdir 这个挂起来了。按Ctrl+C键可以正常运行hugo。就我所见,dlv debug不仅生成相同的行为,而且完全相同:生成的名为debu

Go 戈朗如何浏览进口包装

Javascript等编程语言允许您通过将程序包传递到console.log中来查看库/程序包。我试着在围棋中做同样的事情,但没有成功 package main import "fmt" import "os" func main() { fmt.Print(os) } 这不是正确的方法吗 In,当您使用const assert=require'assert'之类的东西时;您正在导入从断言脚本导出的对象 但在import中,它类似于名称空间,您将在包中使用它。这就是为什么你不能随

Go 获取切片中值的指针

有没有办法获取指向切片中实际值的指针?我在地图上有一个报价树: map[uint64]map[uint16][]offer 要通过id(从1到n)快速访问,我需要一片指针: []*优惠 实际报价位于第一棵树中,在切片中应该是指向该实际报价的指针 我无法遍历树并收集实际值的指针,因为这个切片的range给了我一个副本,但我总共有数十亿个这样的结构,副本会浪费我的内存:一个结构的40字节会导致100+gb,将来会更多。我还需要将树中的值片段存储为连续,以便查找报价的事实 是否有某种方法可以使用不

Go 读取不带结构的BQ查询结果

有人尝试过将查询结果存储到地图吗? 我希望能够从BQ表中读取数据,而无需定义与BQ表模式匹配的结构 我尝试了以下方法,但我想使用一个行迭代器,而不是这个链接中的方法 以下是我正在努力解决的代码: //Removed error handling for brewity ctx := context.Background() client, _ := bigquery.NewClient(ctx, ProjectID) query := fmt.Sprintf("SELECT * FROM `%

Go 解决非主包中的相对路径问题

我在解析Go应用程序中的相对文件路径时遇到问题。对于这个应用程序,我决定制作一个包,为不同的配置文件提供统一的接口。conf包包含相关的数据文件,因此这基本上就是文件树: app/conf + config.go + config.json + ... app/code + code.go + code_test.go 问题是,当app/code/code_test.go中定义的测试调用app/conf包中的函数时,该函数又试图打开app/conf/co

Go 非导出类型的类型断言

我使用的是第三方软件包,它允许您通过导出函数创建某种非导出类型的结构 打包松鼠 类型expr结构{ sql字符串 args[]接口{} } func Exprsql字符串,args…接口{}expr{ 返回表达式{sql:sql,args:args} } 由于这个库的其他函数接受数据的方式,我最终得到了这样一个映射: m:=map[string]接口{}{ col1:123, col2:一根线, col3:Exprnow, } 但是由于这个库中的函数不同,我需要从这个映射中过滤掉所有squirr

Go “附加”是如何工作的?

我想逐行读取文件,每行可能有很多字符 这个版本的readline工作得很好 func readLine(r *bufio.Reader) ([]byte, error) { var ( isPrefix = true err error line, ln []byte ) for isPrefix && err == nil { line, isPrefix, err = r.Re

将Golang时间格式化为特定时间戳

我正在尝试格式化时间。时间类型为昨天的特定时间,特别是23:59:59 我有一个将当前时间转换为IST的函数 func getTimeInIST() time.Time { loc, _ := time.LoadLocation("Asia/Kolkata") now := time.Now().In(loc) return now } 另一个转换为前一天的函数 func GetYesterdaysDateFromTime() time.Time{ return

无法将json数据解组到go中的结构(无法将数组解组到go结构字段)

我使用一个API来接收某个组织的所有招聘广告,我收到的JSON数据非常大,我想在Go中使用这些数据,但是我遇到了解压到结构中的问题,因此我可以进一步使用它。这可能是一个非常简单的解决方案,对我来说是盲目的,因为我认为这个问题会引起一些头痛。代码中的API密钥是公共的,因此与Stackoverflow共享它没有问题 代码: 错误: 2019/12/11 09:52:35 json: cannot unmarshal array into Go struct field JsonData.conte

如何在修改golang web代码后重新编译和运行,基于makefile构建项目

我正在调试一个开源的golang web项目 使用文档makebuild和makestart中的build命令,然后运行项目 问题是当我修改一些代码时,如何重新编译项目 我尝试“重新加载”,但它不起作用。如何操作?只需再次运行make build。您可以读取位于项目基本目录中的Makefile来了解它的功能

Go 在子文件夹中调用函数

文件结构: main folder--main.go |--Utils inside Utils: Read-Words.go 所以。我想在main.go中使用Read-words.go中的函数 如何做到这一点 在Read-Word.go上,在文件顶部设置类似于父文件夹的包。因此,如果该文件位于Utils文件夹中。包是Utils。例如: package Utils 我建议将文件夹名称改为不使用大写字母。因此,您的代码类似于包utils。因此,当您想在Read-Word.go上使用函数时,

我们如何检查go中的域是否有效?

我们如何检查go中的域是否有效?go中是否有一些功能来验证它? 一些条件是 一,。域长度应介于4和48之间 二,。域应仅使用字母、数字、连字符和句点 范例 某物在->有效 some-stuff.in->valid 一些!thing.com->invalid你看过网络包了吗也许还可以将它与len检查长度结合起来?@CeriseLimón这一点太简单了。每个标签最多可包含63个字符。标签开始/结束处的破折号很复杂,域的最大长度是253,IDN不被处理,len 0的标签不被允许,等等。当你的regex

上下文包中Golang嵌入接口字段赋值的混淆

当我阅读上下文包源代码时,我发现cancelCtx结构中有一个上下文接口字段。在newCancelCtx方法中,它将父参数指定给cancelCtx.Context。 我不知道这样的作业是软拷贝还是深拷贝? struct cancelCtx中的上下文字段是否包含指向父接口的指针 //取消此上下文将释放与其关联的资源,因此代码应该 //在此上下文中运行的操作完成后,立即调用cancel。 func WithCancelparent Context ctx Context,cancel CancelF

Go 带有sudo返回/root的os.UserHomeDir()

我正在运行一个CLI应用程序,并使用os.UserHomeDir func保存一些文件,它会返回如下内容:/home/victor/.rit,但当我使用sudo运行命令时,它会返回:/root/.rit/,我希望获得相同的地址,无论是否使用sudo,有一种方法可以使用go来实现这一点?它的行为正确:sudo以不同的用户身份运行命令,root的主目录是/root。因此,如果使用sudo以root用户身份运行程序,则当前用户的主目录为/root。如果需要不同的目录,则应将其作为CLI参数接受,例如使

Go 作为指针语义的接收器语法

有关以下数据: type Product struct { ID int `json:"id"` Name string `json:"name"` } var productList = []*Product{ &Product{ ID: 1, Name: "Latte", }, &am

使用LiteIDE和Google应用程序引擎-文件夹结构

我有一个工具,称之为mytool,它在我编写的一个单独的包中使用其他代码——称之为mypackage 如果使用以下结构,我可以在LiteIDE中构建和测试它: /src/mypackage/mypackage.go /src/mytool/tool.go /src/mytool/tool.yaml 但当我想使用以下工具在GAE上测试或部署时: cd ... \src\ \go\gae\go_appengine\dev_appserver.py mytool/ 或 我必须把东西搬来搬去: /s

在Go中执行命令时,如何获得命令运行时的输出?

到目前为止,我已经看到了一些不同的方法,您可以轻松地在go中执行shell命令并产生它的输出。 但是,在程序仍在运行时会输出大量命令,例如git clone 如果git克隆http://some.repo.git 使用如下方式执行: out,err:=exec.Command…输出 似乎没有任何输出,因为它正在运行。或者至少以我的经验看来是这样的。是否有一种简单的方法或模式可以实现以显示正在运行的命令的实时输出?您可以将管道连接到命令的标准输出: 然后启动命令: err := cmd.Start

Go TCP服务器中的X509服务器身份验证

我正在使用以下C代码: netStream = new SslStream(client.GetStream(), false); var cert = new X509Certificate2("mycert.pfx", "123456"); netStream.AuthenticateAsServer(cert); 如果服务器在Golang中使用TCP协议,那么X509服务器身份验证的等效性是什么 这是我目前使用的Golang代码: func main() { l, err :=

Go-测试-无输出

我有以下测试正在运行,但运行时没有给出正式输出: func TestDeployLive(t *testing.T) { // EXPECTING PASS un, pw := GetGlobalAdminLogins() sc, err, _ := PostImage("apps/10130/icon", un, pw, "/valid.png") sc2, err2, _ := PostImage("apps/10130/learn-more-image", un, pw, "/valid-

golang返回的参数太多

当我将一个函数赋给变量并尝试调用它时。它抛出错误“返回的参数太多” package main import "fmt" func main() { first_name := "Hello" last_name := "World!" full_name := func() { return first_name } fmt.Println(first_name) fmt.Println(last_name) fmt.Println(full_name)

如何获得go语言函数的注释?

如何获得go语言函数的注释? 例如: 如何获得@annotation1和@annotation2?简单回答,Golang中没有对注释的本地支持。if标记正在使用什么,您可以从reflect包中获得 所以,您在Go中没有注释,据我所知,没有提供注释的库。根据你想做什么,标签通常已经足够了,你可以利用语言的力量来达到你想要的结果 应该可以实现它们,因为您可以获得文档字符串,就像PHP一样。然而,在大多数情况下,这是不必要的 编辑: 在Go中,您可以通过ast包访问结构、字段、方法、接口和函数的文档g

len(通道)在Go线程中是否安全?

一个通道可能被多个Go例程使用。使用一些Go例程中的len(通道)获取通道长度是否是线程安全的?这取决于您的用例 调用确实是安全的,但是当其他goroutine从该通道发送/接收数据时,结果是不可信的,这在某种程度上取决于您的用例 调用确实是安全的,但当其他goroutine从该通道发送/接收时,结果不可信Yes,但它通常不有用,因为在读取itRelated后该值可能会立即更改:。是,但通常不有用,因为在读取itRelated后该值可能会立即更改:。

Go 解码编组的JSON unicode

我认为解释我的问题的最快方法是: 但这导致了一场灾难 main.go:21:无法在utf8.DecodeRune的参数中使用res type byte作为类型[]字节 在封送对象上调用DecodeRune将返回 { 编辑:我使用的是Go 1.6.2,无论出于何种原因,它显然没有SetEscapeHTML。这是预期的行为。从: 字符串值编码为强制为有效UTF-8的JSON字符串,替换为 使用Unicode替换符文的字节无效。尖括号 转义到\u003c和\u003e以保留某些浏览器 将JSON输出误

Go 发送SSH命令以配置网络设备

我正在编写一个CLI,用于在Go 1.9.2中通过SSH通过Cisco无线控制器配置Cisco接入点。我正在使用golang.org/x/crypto/ssh包处理与无线控制器的连接。我能够成功地通过SSH连接到所需的控制器,但在尝试向控制器发送命令时遇到了问题。我知道问题是由于控制器的提示和输出到标准输出。手动连接到控制器时,这是输出: $ ssh <controller_ip> (Cisco Controller) User: username Password:******

Go 为什么要在堆上存储指针语义的值?

《围棋行动》的威廉·肯尼德亚乌瑟说,围棋有两种语义。存储在堆栈上的值语义意味着,当我们跨越这些程序边界时,我们正在复制值。指针语义存储在堆上,意味着我们在跨越程序边界时共享值。垃圾收集器有时会启动以回收堆上未使用的内存。我想知道为什么指针语义的值存储在堆上。您能解释一下吗?任何时候在函数堆栈框架范围之外共享一个值,它都会被放置或分配到堆上。逃逸分析算法的任务是发现这些情况并在程序中保持一定程度的完整性。诚信在于确保对任何价值的访问始终准确、一致和高效 参考:这不是关于Go如何选择存储位置的准确描

Go的同步。无法添加映射加载结果

我只是想做一些简单的创建或添加sync.Map gore> :import sync gore> var sm sync.Map gore> sm.Store(12345,1) gore> result, ok := sm.Load(12345) 1 true gore> newr := result +1 # command-line-arguments /var/folders/kl/n95_c8j15wn1784jmsq08mq80000gn/T/112740

如何在Golang中将float64转换为c99十六进制字符串?

如何将float64转换为遵循Golang中c99标准的十六进制字符串 -例如,561.2863至-0x1.18a4a57a786c2p9 package main import ( "fmt" "math/big" ) func main() { f := new(big.Float).SetFloat64(-561.2863) fmt.Println(f) t := f.Text('p', 0) fmt.Println(t) g,

Go 在接收器读取通道块之前,是否关闭通道块

我已经实现了一种通过关闭通道关闭服务器的方法,因此其他goroutine读取关闭的通道,然后退出。关机后,我需要对服务器数据进行一些清理,如果关闭块直到所有其他goroutine读取关闭的通道,我就可以无锁地访问数据。所以问题是:关闭一个通道是否会阻塞,直到接收器读取它?下面是示例代码: package main type server struct { chStop chan struct{} data map[int]interface{} } func newServe

如何在Go中定义用户定义类型的常量值?

我正在Go中实现一个位向量: // A bit vector uses a slice of unsigned integer values or “words,” // each bit of which represents an element of the set. // The set contains i if the ith bit is set. // The following program demonstrates a simple bit vector type with

Go 将接口{}转换为[]接口{}

如何将接口{}强制转换为[]接口{} rt := reflect.ValueOf(raw) switch rt.Kind() { case reflect.Slice: src := raw.([]interface{}) //this operation errors out for _,_ := range src { //some operation } } 我得到一个错误:接口转换:接口{}是[]字符串,而不是[]接口{} 我想让这个方法足

Golang包未定义

我正在尝试为我的Gorilla会话安装redistore后端,但我不断遇到未定义的错误。下面是我确实在包上运行go get,但包导入错误表明它已导入但未使用 错误: 未定义:NewRediStore 代码: 您需要通过在标识符前面加上导入的包名称来导入标识符。e、 g.packagename.Identifiername 或使用。在前面,您可以在导入文件的文件块中重新声明导入包的导出标识符,但是请记住,这不是推荐的做法 import ( . "gopkg.in/boj/redistore

将UTC时间转换为Golang中的时间戳

我想将UTC时间转换为以下格式的字符串 2018-05-11T01:32:29.477-06:00 到 时间。时间或时间戳。Go中的时间戳对象 以下是指向这些库的链接: 时间- 时间戳- 我曾尝试将字符串格式化为unix时间,后来又转换为time.time,但运气不好 下面是一些代码片段来进一步解释这一点: stringUTC := "2018-05-11T01:32:29.477-06:00" i, err := strconv.ParseInt(stringUTC, 10, 64) if e

Go stackdriver是否可以识别来自k8s的系统日志输入?

无法使堆栈驱动程序识别系统日志级别。尽管指定了调试,但所有内容都显示为错误 我知道格式 如果我使用正确的格式作为json有效负载,stackdriver将神奇地获取它,它对我有效 但是,为什么stackdriver即使在系统记录json负载时也不能识别系统日志输入?系统日志是一种不同的协议 试试这个 这是用k8s标记的。。。如果您需要kubernetes日志,那么只需使用导出器即可。如果您只是想获取pod日志,您可以发送到STDOUT,并将其转发给您 logwriter, e := syslog

如何从golang项目文件中获取图像路径

我是一个使用golang制作REST完整API的初学者,我想问的是从我的golang项目的路径中获取一个图像文件,在我成功上传图像并保存在路径中以及保存在mysql数据库中的路径之前,如何才能以链接的形式显示图像,这样我就可以在android上加载它了 如何做到这一点 http://localhost:3004/images/imagename.jpg 在json结果ImgEvent中 请帮帮我。。。谢谢 func idb*InDB GetEventsc*gin.Context{ 变量 even

Go 从函数返回的正确方法是什么?

我不知道如何从函数返回值。我正在尝试以下示例: 将false传递给函数a 函数a中的c值将为false 它将进行递归调用,这将c的值从false更改为true 所以函数应该返回字符串true和bool true,但它返回的是字符串false和bool false package main import ( "fmt" ) func a(c bool) (string, bool) { if c { return "true", true } a

Go 如何处理范围的并发映射

我想为范围映射创建一个值,以便结果可以是偏移量、行先获取、行仅获取 但由于并发,我的代码可以变成偏移量,只能行,行先取 如何保持偏移量、行先取、行只取等顺序?或者可能会阻止并发 已经尝试使用WaitGroup,wg.Add wg.Done wg.Wait,但仍然无法工作 mapPagination := map[string]interface{}{`OFFSET`: offset, `ROWS FETCH FIRST`: limit, `ROW ONLY:keyOnly`: ``} for

Go 从url获取Json并解析为不带结构的多维数组

如何将json从url解析到没有结构的多维数组中 这在围棋中也能做到吗 我在stack和其他网站上看到了很多不同的答案。但不是没有结构的。现在让我们看看如何将JSON数据解码为Go值。下面是一个通用数据结构的示例 byt := []byte(`{"num":6.13,"strs":["a","b"]}`) 我们需要提供一个变量,JSON包可以在其中放置解码数据。此map[string]接口{}将保存字符串到任意数据类型的映射 var dat map[string]interface{} 这是

Go 如何摆脱在VSCode的intellisense无法工作的自动完成后出现的恼人文本框?

我在截图中给Golang编码。此框仅在函数或结构自动完成后出现,并且在其内部intellisense根本无法工作 我怎样才能摆脱它?这真的很困扰我,并且以一种毫无用处的方式浪费了我的时间,因为我只是想利用自动完成功能,但我必须按esc两次才能关闭这个框 我无法重现你的问题。我在Mac上尝试了代码1.41.1和ms-vscode.go插件版本0.12.0 但是,我发现这对我很有用。 基本上,将以下内容添加到您的设置中。editor.parameterhits:false这是否回答了您的问题?

Go 系统单元文件始终失败

我需要用Ubuntu18.04将我的Go应用程序部署到aws ec2实例上,但是我无法使用systemd使其运行。这是我创建的服务/lib/systemd/system/go.service [Unit] Description=go api [Service] Type=simple Restart=always RestartSec=5s ExecStart=/home/ubuntu/go/amutan [Install] WantedBy=multi-user.tar

Go 将日志记录中间添加到grpc

我正在尝试向grpc服务器添加一些日志中间件,这里我将遵循github上的简单示例 我将服务器选项设置为: var ( logrusLogger *logrus.Logger customFunc grpc_logrus.CodeToLevel ) func main() { logrusEntry := logrus.NewEntry(logrusLogger) lorgusOpts := []grpc_logrus.Option{ grpc_

生成约束排除所有Go文件

这是我第一次尝试进行Webassembly,我遇到了一个问题 我正在使用: go版本go1.14.3 linux/amd64 代码可通过以下方式正确编译: GOARCH=wasm GOOS=js go build-o lib.wasm main.go 当我这样做的时候:去运行main.go 我得到以下错误: main.go:8:2:构建约束排除/usr/local/go/src/syscall/js中的所有go文件 有什么办法解决这个问题吗 package main import (

Google Anthos实现-PAAS

我了解到,Google Anthos项目是一个开源项目 它是AWSIAAS和GCPIAAS上的PAAS层 Google Anthos实现的是哪种技术?是GoLang吗?它既不是开源也不是PaaS;它只使用各种PaaS服务 详细解释。Anthos是否在GoLang实施?我如何知道,为什么会如此重要?坦率地说,概念的实现可以用任何语言编写,同时支持所需的特性。

Go select block如何等待ctx.Done()操作?

在以下代码中: ctx, cancel := context.WithTimeout(req.Context(), 5000*time.Second) // Wait for the response or timeout select { case <-ctx.Done(): log.Println("timeout, cancel work...") // Cancel the request and wait for

Go 在另一个例程中调用SetReadDeadline是否正确?

在大多数示例中,在调用net.Conn.Read()之前会调用setReadDailate 在我的程序中,为了插入我的net.Conn.Read(),我在另一个线程/例程中调用net.Conn.setReadDailate(time.Now())。这条路对吗 谢谢。如文件所述: SetReadDeadline设置未来读取调用的截止日期 以及任何当前被阻止的读取调用。 t的零值表示读取不会超时 对于被阻止的读取调用,您只能从另一个goroutine调用setReadDaildate,因此这没有问题

上一页   1   2   3   4    5   6  ... 下一页 最后一页 共 646 页