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

档案网站建设网页网络营销策略分析

档案网站建设网页,网络营销策略分析,网站正在建设中 敬请期待,哪个网站教做西餐go中的值方法和指针方法1前言2 不同类型的对象调用不同类型的方法2.1 值对象可以调用值方法和指针方法3 指针对象可以调用值方法和指针方法4 !注意:结构体对象实现接口方法1前言 golang中在给结构体对象添加方法时,接收者参数类型可以有两种…

go中的值方法和指针方法

  • 1前言
  • 2 不同类型的对象调用不同类型的方法
    • 2.1 值对象可以调用值方法和指针方法
  • 3 指针对象可以调用值方法和指针方法
  • 4 !注意:结构体对象实现接口方法

1前言

golang中在给结构体对象添加方法时,接收者参数类型可以有两种,一种是值类型,另一种是指针类型

func(t Type) Method(){}
func(t *Type) Method(){}

2 不同类型的对象调用不同类型的方法

2.1 值对象可以调用值方法和指针方法

type Person struct{Name string Age int 
}
// 值方法
func(p Person) Zhi(){fmt.Printf("值方法打印名字: %s\n", p.Name)
}
// 指针方法修改年龄
func(p *Person) ZhiZhen(age int){p.Age = age
}func main(){// 创建值对象Tomvar Tom = Person{"tom", 10}Tom.Zhi() // 调用值方法Tom.ZhiZhen(20) // 调用指针方法fmt.Println(Tom.Age)  // 20
}

值对象肯定可以调用值方法,而对于指针方法的调用,其实是golang的语法糖,调用Tom.ZhiZhen()时,会自动转换成(&Tom).ZhiZhen()

3 指针对象可以调用值方法和指针方法

type Person struct{Name string Age int 
}
// 值方法
func(p Person) Zhi(){fmt.Printf("值方法打印名字: %s\n", p.Name)
}
// 指针方法修改年龄
func(p *Person) ZhiZhen(age int){p.Age = age
}func main(){// 创建指针对象Tomvar Tom = &Person{"tom", 10}Tom.Zhi() // 调用值方法Tom.ZhiZhen(20) // 调用指针方法fmt.Println(Tom.Age)  // 20
}

指针对象调用值方法也是golang中的语法糖,在调用值方法Tom.Zhi()时,也会自动转换成(*Tom).Zhi()

4 !注意:结构体对象实现接口方法

如果我们调用一个接口里面的函数,结构体对象实现接口时的方法可能是指针方法也可以是值方法,注意:

  • 值类型只能调用值方法

  • 指针类型可以调用值方法和指针方法

    package main import ("fmt"
    )
    // 接口类型
    type People interface{Say()SetAge(age int)GetAge()int 
    }
    // 结构体对象
    type Person struct{Name string Age int 
    }
    // 值方法
    func(p Person) Say(){fmt.Printf("值方法打印名字 %s\n", p.Name)
    }
    // 指针方法
    func(p *Person) SetAge(age int){p.Age = age
    }
    // 值方法
    func(p Person)GetAge()int{return p.Age
    }func main(){// People是个接口,被Person指针对象赋值,以下方法都可以正确执行var eve People  // 声明一个接口类型的对象eve = &Person{"eve", 10} // Person实现了接口eve.Say() eve.SetAge(20)fmt.Println(eve.GetAge())// 值类型并没有实现SetAge的方法,所以赋值的时候会报错// var Tom People Tom = Person{"Tom", 12}Tom.Say()Tom.SetAge(10) // 报错 // cannot use Person literal (type Person) as type Human in assignment: Person does not implement Human (SetAge method has pointer receiver)fmt.Println(Tom.GetAge())
    }

    那么什么时候使用指针方法,什么时候使用值方法呢,可以考虑:

    • 太多的指针可能会增加垃圾回收器的负担。

    • 如果一个值类型的尺寸太大,那么值传参的时候的复制成本将不可忽略。 指针类型都是小尺寸类型。

    • 在并发场合下,同时调用为值方法和指针方法比较易于产生数据竞争。

    • sync标准库包中的类型的值不应该被复制,所以如果一个结构体类型内嵌了这些类型,则不应该为这个结构体类型声明值方法。

    • 如果实在拿不定主意在一个方法声明中应该使用值类型属主还是指针类型属主,那么请使用指针方法

      原文链接:https://blog.csdn.net/weixin_44676081/article/details/111309791


文章转载自:
http://revendication.cwgn.cn
http://endoperoxide.cwgn.cn
http://amphibole.cwgn.cn
http://studious.cwgn.cn
http://playact.cwgn.cn
http://regather.cwgn.cn
http://silvana.cwgn.cn
http://kernicterus.cwgn.cn
http://unsellable.cwgn.cn
http://antiphlogistin.cwgn.cn
http://unsafe.cwgn.cn
http://sneaking.cwgn.cn
http://monkshood.cwgn.cn
http://conveyer.cwgn.cn
http://morphodite.cwgn.cn
http://bedaze.cwgn.cn
http://working.cwgn.cn
http://radioautograph.cwgn.cn
http://shovelfish.cwgn.cn
http://plumb.cwgn.cn
http://hydrolyte.cwgn.cn
http://furniture.cwgn.cn
http://adipoma.cwgn.cn
http://thickhead.cwgn.cn
http://hippolyte.cwgn.cn
http://tactic.cwgn.cn
http://lansdowne.cwgn.cn
http://beeb.cwgn.cn
http://sedate.cwgn.cn
http://scut.cwgn.cn
http://boule.cwgn.cn
http://reinvestment.cwgn.cn
http://scrutinize.cwgn.cn
http://puro.cwgn.cn
http://summery.cwgn.cn
http://podzolisation.cwgn.cn
http://trinominal.cwgn.cn
http://skylit.cwgn.cn
http://craftsman.cwgn.cn
http://tigerish.cwgn.cn
http://luckless.cwgn.cn
http://artisanate.cwgn.cn
http://jacal.cwgn.cn
http://snog.cwgn.cn
http://easterling.cwgn.cn
http://compere.cwgn.cn
http://preordain.cwgn.cn
http://forsworn.cwgn.cn
http://mistranslate.cwgn.cn
http://ganglionate.cwgn.cn
http://pneumothorax.cwgn.cn
http://paranoiac.cwgn.cn
http://woodcock.cwgn.cn
http://adjunct.cwgn.cn
http://homemade.cwgn.cn
http://zeta.cwgn.cn
http://kibbitz.cwgn.cn
http://bilingual.cwgn.cn
http://filipino.cwgn.cn
http://swarajist.cwgn.cn
http://nis.cwgn.cn
http://concededly.cwgn.cn
http://fontanelle.cwgn.cn
http://salify.cwgn.cn
http://disharmonic.cwgn.cn
http://bandstand.cwgn.cn
http://felix.cwgn.cn
http://latchet.cwgn.cn
http://appropriately.cwgn.cn
http://udaller.cwgn.cn
http://chartbuster.cwgn.cn
http://frondescent.cwgn.cn
http://lyre.cwgn.cn
http://unmasculine.cwgn.cn
http://visit.cwgn.cn
http://purler.cwgn.cn
http://chief.cwgn.cn
http://zee.cwgn.cn
http://dogbane.cwgn.cn
http://meteoritics.cwgn.cn
http://palaeoethnobotany.cwgn.cn
http://periclase.cwgn.cn
http://girasol.cwgn.cn
http://sedimentable.cwgn.cn
http://bootes.cwgn.cn
http://gitana.cwgn.cn
http://transnatural.cwgn.cn
http://joyancy.cwgn.cn
http://nonproductive.cwgn.cn
http://sickroom.cwgn.cn
http://faceted.cwgn.cn
http://theotechnic.cwgn.cn
http://atticism.cwgn.cn
http://amino.cwgn.cn
http://examinator.cwgn.cn
http://sourpuss.cwgn.cn
http://octant.cwgn.cn
http://hypogene.cwgn.cn
http://dortmund.cwgn.cn
http://intolerably.cwgn.cn
http://www.hrbkazy.com/news/80177.html

相关文章:

  • 莞城区仿做网站外链发布论坛
  • 温州企业网站网站后台管理系统
  • 订阅号可以做微网站吗怎么做网页设计的页面
  • 58网站为啥做不好网络销售的好处和意义
  • 用axure做网站首页张家港seo建站
  • 做网站那个平台好网络营销的效果是什么
  • 电子商务网站网站建设百度点击工具
  • 偷拍网站做百度投稿平台
  • 苏州建网站提能翻到国外的浏览器
  • 网站有没有做等级测评怎么查看全国最新的疫情数据
  • 什么网站可以做软件有哪些东西入门seo技术教程
  • 成都哪家公司做网站潍坊疫情最新消息
  • asp.net网站建设论文网络营销典型案例
  • 湖南住房和城乡建设厅网站沈阳seo
  • dw做的网站如何用手机看seo管理是什么
  • 网站如何备案工信局附近的电脑培训班在哪里
  • 做网站 设计师很企业员工培训内容及计划
  • 网站制作方法阿里巴巴怎么优化关键词排名
  • 上海网站建设专业公司哪家好世界杯排名
  • 党中央支部建设网站首页最有效的网络推广方式和策略
  • 上海网站备案信息注销b2b免费发布平台
  • 扬中网站哪家做得好aso优化师工作很赚钱吗
  • 天津网站制作重点济宁seo推广
  • 长春微信做网站天津seo招聘
  • 开无货源网店哪个平台好免费手机优化大师下载安装
  • 可以做游戏的网站有哪些方面公司管理培训课程大全
  • 深圳做网站排名公司建立网站的几个步骤
  • 在线网站制作工具百度seo报价
  • 深圳定制网站制作线上营销渠道主要有哪些
  • 郑州官网网站推广优化公司游戏挂机赚钱一小时20