草庐IT

POOLNAME_FMT

全部标签

linux - Go 代码构建错误,标准包中的非标准导入 "fmt",导入周期不允许

我已经在go中工作了一段时间,这个周末我想尝试部署一些服务器代码。当我在一些非常简单的代码上运行gobuild来测试Go是否正常工作时,我得到了这个错误:can'tloadpackage:($HOME)/go/src/goTest/main.go:4:2:non-standardimport"fmt"instandardpackage"goTest"importcyclenotallowedpackagegoTestimportsfmtimportserrorsimportsruntimeimportsruntime/internal/atomicimportsunsafeimport

go - goland reformat shortcut(ctrl+alt+L) 和 go fmt 有什么区别?

我总是使用goland的键盘快捷键ctrl+alt+L(重新格式化代码)来格式化我的goland代码。当我使用gofmt命令时,它仍然会进行一些更改。那么...golandreformat(ctrl+alt+l)和gofmt之间有什么区别? 最佳答案 内置格式化程序,可通过ctrl+alt+L(重新格式化代码)获得,是IDE为格式化代码。它目前(截至2018.2)不是100%与gofmt相当,所以我建议在提交文件之前使用gofmt。至于您在DVCS中提到的更改,您需要在此处或theissuetracker上提供更多详细信息,以便了解

go - fmt.Println 中的 Variadic 变量扩展

这个问题在这里已经有了答案:Typeconvertingslicesofinterfaces(9个回答)关闭3年前。packagemainimport"fmt"funcmain(){a:=[]int{1,2,3}fmt.Println(a...)}运行会出现以下错误./program.go:5:不能在fmt.Println的参数中使用(type[]int)作为类型[]interface{}来自godocfmtPrintlnfuncPrintln(a...interface{})(nint,errerror)Println接受任何值,因为它是一个空接口(interface)。让我感到困惑

go - 为什么 strings.Builder 在我的测试程序中追加字符串比 fmt.Sprint 慢?

我正在尝试优化结构FmtC的String()函数的速度。基于以下基准。如果我使用strings.Builder预分配1024字节,它比fmt.Sprint(437ns)慢(624ns)。如果我预先分配32字节,strings.Builder会更快(74.8ns),但如果FmtC包含更多成员字段,它就没有用了。如果我通过slice追加方法预分配1024字节,它是最慢的(2337ns)。go版本:go1.12.7linux/amd64。去测试-v-bench=。-benchmemBenchmarkFmtSprint_32-23000000435ns/op64B/op4allocs/opBe

转到 fmt float64 问题

我在对gofmt包的菜鸟理解中遇到了一些问题涉及到以下代码:导入“fmt”funcmain(){varsmallFloatfloat64=0.123456789varbigFloatfloat64=123456789000fmt.Println(fmt.Sprintf("%f",smallFloat))fmt.Println(fmt.Sprintf("%f",bigFloat))}输出是:0.123457123456789000.000000我不想使用科学记数法,所以认为%f会满足我的需要。我可以从格式化页面(https://golang.org/pkg/fmt/)中看到它说:Thed

go - fmt 格式说明符仅打印具有非零值的字段

考虑这段代码:packagemainimport("fmt")typemyStructstruct{astringbintcbool}funcmain(){s:=myStruct{c:true,}fmt.Printf("%v",s)//print{0true}fmt.Printf("%+v",s)//print{a:b:0c:true}}是否有fmt格式说明符来仅打印具有非零值的字段?比如上面的代码,我怎么才能只打印{c:true}因为a==""和b==0? 最佳答案 没有导致零值被省略的内置格式动词。这里有一些选项。fmt.纵梁您

go - 多输入 (fmt.Scanln)

为什么这不起作用,或者如何使用fmt.Scanln获取多个输入?编辑:如果我插入一个以上的单词然后我得到错误“扫描:预期的换行符”,我能做些什么吗?varusernamestringprint("Username:")_,err:=fmt.Scanln(&username)iferr!=nil{fmt.Println("Error:",err)}varpasswordstringprint("Password:")_,err:=fmt.Scanln(&password)iferr!=nil{fmt.Println("Error:",err)}varstatusstringprint("

go - "%b"在 fmt.Printf 中对 float64 有什么作用?二进制格式的 float64 中的 Min subnormal positive double 是什么?

GodocforPackagefmtFloating-pointandcomplexconstituents说:Floating-pointandcomplexconstituents:%bdecimallessscientificnotationwithexponentapoweroftwo,inthemannerofstrconv.FormatFloatwiththe'b'format,e.g.-123456p-78代码:fmt.Printf("0b%b\n",255)//0b11111111fmt.Printf("%b\n",1.0)//4503599627370496p-52什

go - 如何在一个类型上同时实现 fmt.Stringer 和错误接口(interface)?

与fmt.Stringer一样,fmt包寻找errorinterface打印值时。如果一个type满足这两个接口(interface),fmt仅在查找error而不是Stringer时。为什么?如何在一个类型上同时实现Stringer和error? 最佳答案 不是真正的通用解决方案,但在某些情况下,可以使用指针与非指针接收器来解决问题:https://play.golang.org/p/DY4Cq4efsT 关于go-如何在一个类型上同时实现fmt.Stringer和错误接口(inter

转到错误 : "fmt.Println not used". 什么?

标题说的是什么。我收到一个错误:fmt.Printlnnotused提到的行是我的源文件的最后一行。我没有在那个文件中使用fmt包,但我最近用过了。当我尝试构建包或运行测试时会发生这种情况。编辑:如果我gocleanmyproject该项目,我仍然会得到相同的响应。我只是跑了goclean现在有:#myproject:fmt.Printlnnotused为了CatPlusPlus的利益而编辑,这是触发错误的源文件:types2.gopackagemypackageimport()运行:gobuildmypackage#mypackage./types2.go:4:fmt.Println