草庐IT

method_idx

全部标签

go-golang编译错误: type has no method

如何解决?https://play.golang.org/p/aOrqmDM91J:28:Cache.Segmentundefined(typeCachehasnomethodSegment):29:Cache.Segmentundefined(typeCachehasnomethodSegment)packagemainimport"fmt"typeSlotstruct{Key[]stringVal[]string}typeCachestruct{Segment[3615]Slot}funcNewCache(sint)*Cache{num:=3615Cacheobj:=new(Cac

methods - 方法接收者

Go方法接收器接受一个类型以及该类型的变量名,例如:typeMyFloatfloat64func(xMyFloat)Abs()float64{ifx接收方采用"x"以及接收方法的类型。名称“x”的意义是什么。因为我能够在MyFloat的任何实例上调用该方法(而不仅仅是在名为x的实例上),为什么我必须指定x?由于接收者是类型或对类型的引用,为什么不像这样简单地单独使用类型或指针func(MyFloat)Abs()float64{ifthis我的假设是在Javagolang中代替this允许任何名称?是这样吗? 最佳答案 您的假设是准确

methods - 为什么 Go 中的方法只能声明在同一个包中定义的类型上?

GoTour说如下:Youcanonlydeclareamethodwithareceiverwhosetypeisdefinedinthesamepackageasthemethod.Youcannotdeclareamethodwithareceiverwhosetypeisdefinedinanotherpackage(whichincludesthebuilt-intypessuchasint).除了避免每个人都根据int和string构建自己的方法之外,还有其他原因吗?我用Google搜索了一下,但找不到任何引用它的内容。 最佳答案

go - 设计Go包: when I should define methods on types?

假设我有一个typeTint类型,并且我想定义一个对此类型进行操作的逻辑。我应该使用什么抽象?何时使用?在该类型上定义方法:func(Tt)someLogic(){//...}定义函数:funcsomelogic(Tt){//...} 最佳答案 在某些情况下,您倾向于使用方法:改变接收者:修改对象字段的事物通常是方法。对于您的用户,x.Foo会修改X而不是Foo(x)会令您感到惊讶。接收者的副作用:如果对象以微妙的方式对对象/通过对象具有副作用,则它们通常是某种类型的方法,例如写入struct的一部分的网络连接,或通过指针或slic

methods - Go嵌入结构调用子方法而不是父方法

这里是带有一个接口(interface)、一个父结构和2个子结构的Go代码示例packagemainimport("fmt""math")//ShapeInterface:definesmethodstypeShapeInterfaceinterface{Area()float64GetName()stringPrintArea()}//ShapeStruct:standardshapewithanareaequalto0.0typeShapestruct{namestring}func(s*Shape)Area()float64{return0.0}func(s*Shape)GetN

methods - golang区分T和*T上的方法集的原因是什么?

这是我学习围棋时最困惑的地方。我们都知道T上的方法只影响T的副本,*T上的方法会影响T上的实际数据。为什么T上的方法也可以被*T使用,反之则不行?那么,你能给我一个例子(或理由)说明为什么他们不允许T使用*T上的方法吗?这种设计的优缺点是什么? 最佳答案 这里有很多答案,但没有一个能回答为什么会这样。首先让我们假设您有一个*T并想调用一个接受T的方法。要做到这一点,您需要做的就是将*yourT(其中*用于取消引用指针)传递给功能。这保证是可能的,因为您只是在已知位置复制内存块。现在假设您有一个T并且想要一个*T。您可能认为您可以只执

methods - Go 中的方法图

在某些情况下(如添加、删除等),我调用了几种方法。然而,随着时间的推移,案例数量在增加,我的switch-case也越来越长。所以我想我会创建一个方法图,比如Gomapoffunctions;这里函数的映射是微不足道的。但是,是否可以在Go中创建方法的映射?当我们有一个方法时:func(f*Foo)Add(astring,bint){}下面的语法会产生编译时错误:actions:=map[string]func(a,b){"add":f.Add(a,b),}是否可以在Go中创建方法映射? 最佳答案 是的。目前:actions:=ma

git - 推送到github时突然得到 "No supported authentication methods available"

几周前我开始了一个github项目。我能够毫无问题地推送更改(我使用的是TortoiseGIT)。今天,当我尝试推送更改时,突然出现“PuTTYfatalerror”“已断开连接:没有可用的支持的身份验证方法”错误窗口。有什么建议可以解决这个问题吗? 最佳答案 对我来说,只有在使用TortoiseGit时才对远程存储库执行操作时出现问题,通过CMD/GitBash则完全没有问题。所以我所做的非常简单:我打开了TortoiseGit-->Settings-->Network并在SSHClient中我更改为“C:\ProgramFile

php - 路由 [Controller@method] 未定义

我正在尝试使用相应的Controller方法创建一个表单,该方法将新记录添加到数据库中。Laravel版本为4.1app/views/projects.blade.php{{Form::open(array('action'=>'ProjectController@createProject','method'=>'post'))}}{{Form::text('project_number')}}{{Form::text('title')}}{{Form::text('client')}}{{Form::text('comment')}}{{Form::file('xmlfile')}

php - 关于 PHP 下划线命名约定(如 "_method"或 "_property")

这是我一直想知道的一种一般性调查。我通过其他人的代码注意到了很多这种情况,但从来没有真正知道真正的原因,只是跟随趋势,所以这里。为什么有些方法和属性的名称前加下划线,而有些则没有?例如,具体什么时候使用function_method(),什么时候使用functionmethod(),或者换句话说,private$_someVariable与private$someVariable? 最佳答案 大多数时候,它是PHP4的一种回归约定,它不支持属性或方法的可见性,库开发人员使用_来表示应该被视为私有(private)的东西,而不是直接从