草庐IT

int_array

全部标签

在 int 和 uint 之间转换的 Golang 成本

我正在移植一些经常使用无符号整数的旧C++代码。我可以理解它们在C++中的用途,以帮助确保仅在某些地方使用正值。但是我相信还有一些隐式类型转换正在进行所以在go版本中我最终得到的代码看起来像Node{IsTerminal:true,TerminalNo:uint(RandPostiveIntUpTo(int(fitnessCases.Terminals)))})这似乎有点不必要。我很好奇,这个转换是否有很多(时间)成本,我是否会因为在任何地方都使用int而失去任何重要的安全性? 最佳答案 这段代码:packagemainimport

arrays - 将数组作为golang的输入

这个问题在这里已经有了答案:Readnumbersfromos.StdinintoarrayorsliceinGo(1个回答)关闭4年前。我如何将数组作为golang的输入?funcmain(){varinPut[]float32fmt.Printf("Input?")fmt.Scanf("%s",&inPut)fmt.Println(inPut)for_,value:=rangeinPut{fmt.Print(value)}}我试过上面的代码,但没有给出正确答案,我应该使用其他类型的扫描仪吗?我想接受的输入类似于[3.2-6.7742-0.9]

arrays - 无法对二维数组的列进行 slice "cannot use Sudoku[0:9][0] (type [9]int) as type []int in assignment"

我正在使用9x9二维数组的slice制作一个简单的数独游戏。我仍然刚开始使用Golang并且有一些C++经验。我不断收到错误消息“无法将数独[0:9][0](类型[9]int)用作赋值中的类型[]int”。varrow1[]int=数独[0][0:9]该行正确地获取了二维数组第一行的值并将它们放入row1slice中,但是使用varcol1[]int=Sudoku[0:9][0]会导致上面的错误消息。我能做什么?提前致谢!例如,packagemainimport"fmt"funcmain(){varSudoku[9][9]intfmt.Println(Sudoku)varrow1[]i

go - 如何从golang中的对象时间获取string或int64?

我从输入源时间戳中获取,然后为该时间戳设置时间“00:00:00”。现在我需要从对象时间获取时间戳timestamp_int:=1532009163time:=time.Date(time.Unix(int64(timestamp_int),0).UTC().Year(),time.Unix(int64(timestamp_int),0).UTC().Month(),time.Unix(int64(timestamp_int),0).UTC().Day(),0,0,0,0,time.Unix(int64(timestamp_int),0).UTC().Location())new_ti

dictionary - 如何找出 'map[string][][]int' 是否有值

给定这段代码:varamap[string][][]intvaraamap[string][][]int=map[string][][]int{"a":[][]int{{10,10},{20,20}}}varbbmap[string][][]int=map[string][][]int{"b":[][]int{{30,30},{40,40}}}fmt.Println(aa)//>>map[a:[[1010][2020]]b:[[3030][4040]]]我怎么知道'[30,30]'是否在'aa'中?我想检查“aa”是否有“[3030]”。 最佳答案

arrays - 为什么连接这两个字符串会在 Go 中移动组合字符串的前 3 个字符的末尾 3 个字符?

当尝试连接两个字符串时,它们会合并,但接下来的三个字符会覆盖之前连接的文本,然后再次按预期继续连接。我怀疑这与retrieve_mapped_value(cmd.Interaction.Replies[p_index].Variable[r_index],var_swap)函数有关,因为这种现象仅发生在在build_executable的cmd.Interaction部分的双for中调用。哪里出错了funcbuild_executable(cmdshell_command,var_swapstring_matrix,is_firstbool)string{sleep_duration:

arrays - 在 Go 中使用 slice 进行子集检查

我正在寻找一种有效的方法来检查slice是否是另一个slice的子集。我可以简单地遍历它们来检查,但我觉得必须有更好的方法。例如{1,2,3}isasubsetof{1,2,3,4}{1,2,2}isNOTasubsetof{1,2,3,4}有效执行此操作的最佳方法是什么?谢谢! 最佳答案 我认为解决子集问题最常见的方法是通过map。packagemainimport"fmt"//subsetreturnstrueifthefirstarrayiscompletely//containedinthesecondarray.There

string - 为什么不使用 %v 来打印 int 和 string

我知道要打印int我们可以使用%d,而string我们可以使用%s但我们仍然可以使用%v来打印它们。那么,如果我总是使用%v来打印它们呢?如果我这样做会发生什么问题? 最佳答案 没有什么不好的事情发生,但是%d动词指示fmt要打印的包是一个数字(使用基数10),%v动词表示使用可以覆盖的默认格式。看这个例子:typeMyIntintfunc(miMyInt)String()string{returnfmt.Sprint("*",int(mi),"*")}funcmain(){varmiMyInt=2fmt.Printf("%d%v"

arrays - 提高在结构 slice 中搜索值的性能

我如何优化下面的代码以搜索map数组中的特定键值(然后返回其他键值)?typeuserMapstruct{JiraUsernamestringCHProjectIDintCHIDstring}funcmain(){varuserMaps[]userMapuserMaps=append(userMaps,userMap{JiraUsername:"ted",CHProjectID:81,CHID:"23jk3f32jl3323",})fmt.Println(GetUserInfo(userMaps,"ted"))}funcGetUserInfo(userMaps[]userMap,jir

arrays - GO阵列扩展

我正在测试一些go数组初始化和一般用法,但我不明白为什么不能扩展用定义长度初始化的数组?packagemainfuncmain(){arr0:=[]int{1,2,3}//add(arr0...)//OKarr1:=[3]int{1,2,3}//slice:=arr1[:]//add(slice...)//OKarr2:=[3]int{}//arr2[0]=1//arr2[1]=2//arr2[3]=3//add(arr2...)//cannotusearr2(type[3]int)astype//[]intinargumenttoadd}funcadd(terms...int)(su