草庐IT

指向性

全部标签

pointers - 将类型别名的变量传递给需要指向基础类型的指针的函数

我将自定义类型别名(使用方法)定义为:typeAwsRegionstring然后我想将这种类型的变量传递给另一个遗留(不受我控制)函数,它接受指向字符串的指针(指向基础类型的指针):funcmain(){varregionAwsRegion="us-west-2"f(®ion)//HowtoproperlycastAwsRegiontypehere?}funcf(s*string){fmt.Println(*s)//justanexample}当然我不能这样做,错误消息指出:cannotuse®ion(type*AwsRegion)astype*stringinargume

go - 如何在 Go 中获取指向映射中值的指针

我想获得一个指向映射值(包含结构)的指针,以便我可以修改结构中的字段,而不必重新分配它。typeFoostruct{Barint64}funcSomeFunction(arg*Foo){...}我目前要做的事情:ifval,ok:=myMap[idx];ok{//valisoftype`Foo`SomeFunction(&val)myMap[idx]=val}我想做什么:ifval,ok:=getPointer(myMap,idx);ok{//valisoftype`*Foo`SomeFunction(val)}有没有办法在Go中执行此操作,还是我需要依靠足够聪明的编译器来执行复制省略

mysql - 指向 MySQL 查询抽象接口(interface)的指针片段

我正在尝试抽象我对MySQL数据库的使用,但我遇到了一个错误。我将以对象为例:packagemodels//Product:TheProduct'smodeltypeProductstruct{IDintNamestringPriceintPictureURLstring}我将尝试在我的数据库中检索产品id=1。为此,假设我已经连接到我的数据库,该连接由下一个变量表示:vardatabaseMySQL*sql.DB为了查询我的数据库,我使用了这个函数://QueryMySQLqueryourMySQLdatabasefuncQueryMySQL(sqlquerymodel.SQLQue

go - 如何分配内存以映射指向golang中的 slice

有没有办法分配映射的内存,最多有Nmax个键,指向最大长度Nmax的slice?我目前只是通过make(map[int][]int,Nmax)指定键的最大数量,但我不确定如何告诉Go每个slice将是最大长度Nmax因为我不知道key是先验的。我基本上有一堆人口为整数的网站。我使用map来跟踪有多少站点具有给定的人口N。我的程序中的瓶颈似乎是runtime.memmove,我猜这是由于不断调整map指向的slice的大小。 最佳答案 鉴于您对问题的描述确实相当模糊,我将首先说明我将如何“管理”map。为简单起见,我将把所有逻辑包装在

go - 使用反射填充指向结构的指针

我想遍历结构中的字段并提示将字符串值输入字符串字段,对作为结构指针的字段递归执行此操作。目前这是我尝试过的方法,但在尝试在指针的字符串字段中设置此值时出现错误。packagemainimport("fmt""reflect")typeTablestruct{PK*Field}typeFieldstruct{Namestring}funcmain(){PopulateStruct(&Table{})}funcPopulateStruct(ainterface{})interface{}{typeOf:=reflect.TypeOf(a)valueOf:=reflect.ValueOf(a

go - 使用反射设置指向字段的指针

我有以下结构,并且需要一些字段可以为空,所以我使用指针,主要是为了处理sql空值typeChickenstruct{Idint//NotnullableName*string//canbenullAvgMonthlyEggs*float32//canbenullBirthDate*time.Time//canbenull}所以当我执行以下操作时,我可以看到json结果可以包含值类型的空值,这正是我想要的stringValue:="xx"chicken:=&Chicken{1,&stringValue,nil,nil}chickenJson,_:=json.Marshal(&chicke

go - "cast"Go中的指针类型如何匹配指向值的类型?

我有一个包含不同变量类型的slice。一些字符串、整数等。我有什么办法可以将指向这些值之一的指针从*interface{}转换为*string或*int32在适当的地方。这是一个演示问题的玩具程序:http://play.golang.org/p/J3zgrYyXPq//StoreastringintheslicevalSlice:=make([]interface{},1)varstrValstring="test"valSlice[0]=strVal//CreateapointertothatstringptrToStr:=&valSlice[0]//Outputs"stringv

go - 使用 gorilla mux 指向域去服务器

我有一个小型服务器,我希望该服务器使用gorilla/mux包监听我的自定义域sftablet.dev。代码如下:packagemainimport("fmt""net/http""github.com/gorilla/mux")funcmain(){r:=mux.NewRouter()r.Host("sftablet.dev")r.HandleFunc("/",HomeHandler)r.HandleFunc("/products",ProductsHandler)http.ListenAndServe(":8080",r)}funcHomeHandler(whttp.Respons

arrays - 如何从指向单个对象的指针重新转换指向数组的指针

我尝试在我的porogram中找到方法,使用interface{}作为特定函数的参数,将beetwen类型指针解析为指向单个对象的数组形式的指针。这次我使用以下方式得到这个结果:funcobject(vinterface{}){ifstrings.HasPrefix(reflect.TypeOf(v).String(),"*[]"){//pointertoarray}else{//pointertosingleobject}}以上方法可行,但对我来说这不是干净的代码。我认为存在一些更好的方法来使用golang包作为类型来解决这个问题,但现在我不知道如何解决这个问题,所以请您提出建议。附

pointers - Go:是否可以返回指向函数的指针

对于下面的代码:packagemainimport"fmt"typeintFuncfunc(int)intvart=func()intFunc{a:=func(bint)int{returnb}returna}funcmain(){fmt.Println(t()(2))}有没有办法直接返回指向函数的指针而不是函数?(类似于return&a)?Playground在这里:https://play.golang.org/p/IobCtRjVVX 最佳答案 是的,只要你正确转换类型:https://play.golang.org/p/3R