当前位置: 首页 > news >正文

网站服务器放置地怎么填软件开发范例的最简单模型

网站服务器放置地怎么填,软件开发范例的最简单模型,关键词排名优化,南博会官方网站建设投入内容均来自 https://www.bilibili.com/video/BV1Eb4y1F7b9 https://juejin.cn/post/6963476381728702501 什么时候要使用指针接收器#xff1f; 1.A很大#xff0c;因为Go语言在执行函数时会进行参数的拷贝#xff0c;拷贝一个大的对象和拷贝一个 指针相比代价肯定要大。 2.… 内容均来自 https://www.bilibili.com/video/BV1Eb4y1F7b9 https://juejin.cn/post/6963476381728702501 什么时候要使用指针接收器 1.A很大因为Go语言在执行函数时会进行参数的拷贝拷贝一个大的对象和拷贝一个 指针相比代价肯定要大。 2.当方法中要修改A本身的数据时。同样是因为拷贝的原因对于拷贝对象的修改不 会影响原对象 type I1 interface{F1() } type I2 interface{F1()F2() } type T1 struct{d int } func(t T1)F1(){fmt.Printin(F1,t.d) } func(t *T1)F2(){fmt.Printin(F2,t.d) } //OK var _ I1T1 //OK var _ I1T1 //OK var _ I2T1 //Not OK var _ I2T1如果一个类型A实现了某方法就相当于*A也实现了该方法。 反过来不成立。 前提A本身不能是指针类型如果*A实现了某方法对于**A没有影响。 所以A实现了的接口*A一定也实现了。 反过来不一定。 A是如何调用*A的方法的 (互相调用) 可以认为是golang中的一种语法糖 func (s *mystruct)Read(data []byte)(int,error){return 0,nil } 如果有了上面的不允许再定义下面的 func (s myStruct)Read(data []byte)(int,error){return 0,nil }不管在上面是谁实现了Read方法下面的两段代码都是0K的 a:mystruct{} a.Read(nil)b:mystruct{} b.Read(nil)type A structd int } func(a *A)F1(× int)(a.dx } func main(){a:A{d:10}a.F1(5) //等于(a).F1(5)fmt.Println(a.d) }type A struct{d int } func(a A)F2(x int){a.dx } func main(){a:A{d:10}a.F2(5) //等于(*a).F2(5)fmt.Println(a.d)//结果还是10 }*A拥有A的所有方法。对A的方法做了包装先做指针解引用再调用A的方法。 *A的变量可以直接调用A的方法处理逻辑同上 可以理解为语法糖也可以理解为对于上面的包装后的方法的调用。 A没有A的方法 A的变量可以直接调用A的方法处理逻辑是先取指针再调用*A的方法。 只能理解为是语法糖。 https://stackoverflow.com/questions/48790663/why-value-stored-in-an-interface-is-not-addressable-in-golang https://go.dev/doc/faq#different_method_sets 为什么要让*A拥有A的所有方法 可能的原因 1.*A调用A的方法的过程总是安全的。 2.*A调用A的方法的结果总是符合预期的而且是有益的。 不太可能是因为接口实现的需要而实现这样的特性。 1.这是在Go的Spec里面设定的行为正常的顺序是Spec在前实现在后。 2.Go语言在设计层面并没有对接口实现做设定所以不允许取接口的地址 为什么不让A拥有*A的方法 看一个例子假设A拥有*A的方法下面的代码将是正确的但是结果不符合预期 var buf bytes.Buffer io.Copy(buf,os.Stdin)//将数据拷贝到buf里面//相关代码 func Copy(dst Writer,src Reader)(written int64,err error){return copyBuffer(dst,src,nil) } type Writer interface{Write(p []byte)(n int,err error) } func (b *Buffer)Write(p []byte)(n int,err error){ }如果让A拥有A的方法也就是让A实现A所实现的接口此时将A作为接口类型的变量使用与*A的行为是有差异的而且是我们不想要的行为。
http://www.pierceye.com/news/837326/

相关文章:

  • 情头定制网站被称为网站开发神器
  • 宝安网站设计案例淘宝页面制作
  • 天津品牌网站制作怎样建设网站流程
  • 怎样进行公司网站建设wordpress主题公司
  • 外宣做网站宣传网站功能描述
  • 部队网站建设多少钱营销自己的网站
  • 长春市城乡建设部网站南昌诚推网络技术有限公司
  • 网站 建设 欢迎你濮阳家电网站建设
  • 怎么快速建立一个网站如何用腾讯云服务器搭建wordpress
  • 五屏网站建设多少钱深圳网站公司有哪些
  • 莆田网站建站wordpress cd
  • 软件下载安装免费南京seo关键词优化服务
  • 广州网站设计软件建设将网站加入受信网站再试
  • 淘宝联盟网站备案常见的互联网应用
  • 自己做网站 搜索功能开发企业综合信息服务平台
  • 意大利语网站建设wordpress主题首页显示不全
  • 模板网站免费下载wordpress启用静态
  • 保定网站建设哪家好网站建设实践报告3000字
  • 网站制作项目执行免费制作微网站
  • 西安网站制作费用网站建设小程序开发报价
  • 深圳做针织衫服装的网站软件开发工具手机版
  • 网站域名注册的相关证书证明文件最珠海app
  • 网站规划建设与管理维护大学论文免费个人搭建网站
  • 网站解析时候让做别名企业密信app下载安装
  • 直播网站建设模板网站中文商标域名注册
  • 商务网站建设与管理读后感为什么公司要做网站
  • 高密 网站建设wordpress设置置顶文章
  • 购物京东商城西安官网seo哪家公司好
  • 专门做库存处理的网站沭阳建设网站
  • 建筑必看六个网站门户网站地方生活门户有哪些