草庐IT

int_variable

全部标签

go - [1] int{} 和 [] int{0} 有什么区别

我试图在其他func中更改array,然后返回更改的。所以我在下面写了一个示例代码,我的问题是为什么changeArr02函数的变化会影响原点arr而changeArr01不会。packagemainimport"fmt"funcchangeArr01(arr[1]int){arr[0]=-100}funcchangeArr02(arr[]int){arr[0]=-200}funcmain(){arr01:=[1]int{}changeArr01(arr01)fmt.Println(arr01)//0arr02:=[]int{0}changeArr02(arr02)fmt.Printl

go - 将浮点字符串转换为int

Closed.Thisquestionneedsdetailsorclarity。它当前不接受答案。想改善这个问题吗?添加详细信息,并通过editingthispost阐明问题。2年前关闭。Improvethisquestion我的服务以字符串形式接收价格,例如“12.34”。我必须将其保存为美分(db),因此必须为1234。以下解决方案安全吗?安全意味着结果始终相同且正确。“12.34”必须为1234,但不能为1235或1233。s:="12.34"f,_:=strconv.ParseFloat(s,64)i:=int(100*f)(我这里不处理错误,因为问题不在于错误处理)

go - 包命名 : error exporting variable

我的目录结构是这样的:Animal/dog/chiwawa.gorabbit.gochiwawa.go和rabbit.go都在文件顶部打包名为:“packageanimal”。但是,当我尝试在rabbit.go中使用chiwawa.go中的变量varFood=apple时,出现错误-undefined:食物。当我将chiwawa.go直接放在Animal下而没有dog目录时,我没有任何问题。这在Go中是故意的吗?我可以在保留包名称和目录结构的同时解决这个问题吗? 最佳答案 HowtoWriteGoCodeWorkspacesTheg

variables - golang 编译器说程序正在重新定义变量,还没有重新定义

编译器说每个已定义的变量都在5行后再次定义并引发错误,当然我没有在5行后重新定义所有变量,我该如何停止这个错误?这是其中一个结构的示例typeHolderstruct{NamestringHolders_needintAvailint}它声称在32之类的结构关闭后的行上有redifend我已经找到了答案 最佳答案 您应该添加一些代码并让我们确切知道您在做什么。您可能在初始化变量后使用:=而不是=。例如i:=1//useii=2//changevalueofiusing=sinceihasalreadybeendeclared//i:

c# - Go语言中Char到Ascii int的转换

我们有一个从C#.Net到Go语言的项目迁移。我已经完成了大部分,但我被困在一个地方。在C#中,我有一个代码,(int)char我怎么用Go语言写这个? 最佳答案 Go中没有“char”类型,最接近的是rune,它是int32的别名。作为int32的别名意味着类型int32和rune是相同的,您可以将rune像一个int32数字(这样你就可以比较它,加上/减去它等等)。但是要知道Go对类型很严格,你不能比较不同类型的值(在你的回答中,你将它与一个无类型的整数常量进行比较,这是可以的)。例如下面的代码是一个编译时错误:varrrune

jsonpb,为什么把int64解码成json,结果是string。像 int64 str=10 -->str :"10"

//code:630//jsonpb,whyint64->jsonisstring.like10-->"10"//https://github.com/golang/protobuf/blob/master/jsonpb/jsonpb.go//Defaulthandlingdeferstotheencoding/jsonlibrary.b,err:=json.Marshal(v.Interface())iferr!=nil{returnerr}needToQuote:=string(b[0])!=`"`&&(v.Kind()==reflect.Int64||v.Kind()==refl

go语言中字符串解析为int

我有一个像“en=10,ab=15”这样的字符串。我想从中得到10作为一个整数。我无法转换它总是返回ASCII代码的类型。我应该将其转换为map吗? 最佳答案 您可以使用:i:=strings.Index(st,"=")然后n,err:=fmt.Sscan(st[i+1:],&d)尝试this:packagemainimport("fmt""log""strings")funcmain(){st:="en=10,ab=15"i:=strings.Index(st,"=")ifi!=-1{vardintn,err:=fmt.Sscan

go - 将 byte slice 转换为 int slice

我目前正在尝试将一个byte转换为一个int,所以我是这样进行的:vard=[]byte{0x01}val,err:=strconv.Atoi(string(d))我得到这个错误:strconv.Atoi:parsing"\x01":invalidsyntax我试了很多方法都没有成功..有人知道吗? 最佳答案 slice已经包含一个字节值1,而不是ascii字符1,因此无需尝试将其转换为字符串。要将一片byte转换为一片int,请单独转换每个值byteSlice:=[]byte{1,2,3,4}intSlice:=make([]in

go - 为 big.Int 创建了类型别名 - 但我无法使用其指针接收器设置它?

我认为类型别名比嵌入结构更优雅。你看,如果我创建一个嵌入big.Int的新类型BigInt,我必须注意嵌入的big.Int始终被初始化,并且除非我重新实现big.Int,比如Cmp、Add、Sub,所有依赖于这个新类型的代码都需要知道BigInt的方法实际上接收到一个big.Int对于他们的论点。这是愚蠢的。所以我尝试给类型起别名。typeBigIntbig.Int//StringcastsBigIntintobig.IntandusesitsStringmethod.func(b*BigInt)String()string{bc:=big.Int(*b)returnbc.String

Golang - 将 int 添加到字节数组的末尾

我想在Golang中将一个int添加到字节数组的末尾。这是我当前的代码:nameLengthBytes:=[]byte{32,32}nameLength:=len(name)nameLengthBytes创建了2个空格,我正在寻找一种将nameLength添加到nameLengthBytes末尾的方法.示例:如果名称长度为7,我希望数组为:{32,55}如果名称长度为12,我希望数组为{49,50}问题是有时名称短于10,所以我需要用前导零填充。 最佳答案 你想要一个用空格填充的ascii表示的数字作为字节?fmt.Sprintf生