草庐IT

pselect函数

全部标签

go - 如何检查go文件中是否存在函数

golang中是否有类似的功能来检查包/go文件中是否存在函数,就像在python中所做的那样。mymethodindir(package) 最佳答案 看起来像来自this发布它不是直接可能的。您始终可以创建自己的包来搜索包文件并检查该方法是否存在,如上文所述post'sfirstanswer. 关于go-如何检查go文件中是否存在函数,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/question

unit-testing - 创建模拟函数

您好,我想测试或模拟某个函数并为此返回模拟响应。下面演示的是我的代码示例.gopackagemainimport("fmt"log"github.com/sirupsen/logrus")varconnectDB=ConnectfuncSample(){config:=NewConfig()response:=connectDB(config)fmt.Println(response)log.Info(response)}funcConnect(config*Config)string{return"Insidetheconnect"}我的测试是这样的Sample_test.gopac

go - 如何在另一个文件中访问 package main 的另一个函数?

这个问题在这里已经有了答案:HowtocompileGoprogramconsistingofmultiplefiles?(7个答案)HowcanI"gorun"aprojectwithmultiplefilesinthemainpackage?(8个答案)"undefined"functiondeclaredinanotherfile?(14个答案)关闭4年前。这是我的文件树:.├──float.go└──main.gomain.go:packagemainfuncmain(){Float()}float.go:packagemainimport"fmt"funcFloat(){fm

go - 带接收器的函数类型

我如何声明一个带有接收者类型的函数?我以为我可以执行以下操作,但它提示语法错误:typemyFuncfunc(s*State)(blahBlah)errfuncmain(){b:=&Blah{}s:=&State{}varf=myFs.f(b)}func(s*State)myF(blahBlah)err{...} 最佳答案 您可以定义一个将接收者作为其第一个参数的函数类型(本质上就是方法)。typemyFuncfunc(*State,Blah)error然后您可以使用methodexpression创建该类型的值:typeBlahs

go - 动态函数返回类型

我有一个按模块分开的应用程序。有几个实体和CSV模块。Csv模块仅支持结构(实体),但我想让CSV模块适用于任何类型的实体。现在它是这样工作的:Csv模块从channel接收数据并将其严格转换为EverySize结构。我怎样才能实现动态返回类型,以便它适用于任何类型的实体,而不仅仅是EverysizefuncprepareWrapData(data[]feed.WrapExporterChannels)[]everysize.EverySizeItem{varresult[]everysize.EverySizeItemfor_,value:=rangedata{result=appe

go - Golang 中字符串和泛型函数的映射

我正在尝试创建一个将字符串映射到函数的映射。并非所有函数都具有相同的签名。例如,我想要这样的东西:rf:=map[string]func(...interface{})error{"FirstName":validateExistence(a.FirstName,"FirstNameisrequired."),"Postcode":validateMatchPattern(a.Postcode,`^\d{5}$`,"Couldnotmatchpatternforpostcode."),"Address":validateLength(a.Address,0,35,"Addressmus

go - 在函数中初始化 channel 导致 go routine 死锁

我是Go的新手,所以我确定这是我所缺少的简单内容。我正在尝试初始化一个channel以从另一个函数捕获用户输入。我尝试了以下方法:packageinputconstUP=1constRIGHT=2constDOWN=3constLEFT=4varinputChannelchaninttypeInputReaderinterface{ReadNextInt()int}funcInitInputChannel()chanint{inputChannel:=make(chanint,1)returninputChannel}funcSendInput(inputReaderInputRead

json - 将 JSON 文件读入自定义类型结构,我需要在需要类型字符串而不是自定义类型的函数中使用键

我正在创建一个工具,它可以获取JSON文件,然后使用Go从中创建PDF这是我的JSON示例:[{"Name":"Ollie","Age":"25","Comment":"Thisismycomment"},{"Name":"Amy","Age":"28","Comment":"Anothercomment"},{"Name":"Joey","Age":"19","Comment":"CommentfromJoey"},{"Name":"James","Age":"23","Comment":"James'comment"},{"Name":"Richard","Age":"20","C

go - 为什么 Args 在函数初始化之前初始化?

src/os/proc.go://Argsholdthecommand-linearguments,startingwiththeprogramname.varArgs[]stringfuncinit(){ifruntime.GOOS=="windows"{//Initializedinexec_windows.go.return}Args=runtime_args()}当我在这里调试时,我发现Args在init函数之前被初始化。它在哪里初始化? 最佳答案 如评论所述://Initializedinexec_windows.go.s

函数接受抽象接口(interface)和函数接受结构实现之间的golang转换

我在不同版本的实现之上创建层时遇到的问题。目标是抽象出实现细节,调用者不需要关心我们使用的是哪个实现。请看代码示例here^代码更能说明我遇到的问题。我们有两个版本的Stream实现Stream1和Stream2。它们有一个共同的接口(interface)Stream。它们都有相应的BindStreamHandler函数接受StreamHandler1或StreamHandler2。我们有一个函数BindStreamHandler,以及一个funcStreamHandlerImpl(sStream)的通用实现。无论我们使用Stream1还是Stream2,一般的实现都是一样的。现在我遇