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

关键词和网站的关系腾讯云网站建设流程图

关键词和网站的关系,腾讯云网站建设流程图,网站怎么做播放器,网站建设 风险目录 一.引言 二.接收者类型 三.代码示例 1.指针接收者 2.值接收者 3.运行结果对比 4.代码修改 5.刨根问底 四.总结 一.引言 go 语言中 func (c *Title) 和 func (c Title) 两个方法的传参差一个 * 号#xff0c;二者的区别是一个是指针类型#xff0c;一个是值类型… 目录 一.引言 二.接收者类型 三.代码示例 1.指针接收者 2.值接收者 3.运行结果对比 4.代码修改 5.刨根问底 四.总结 一.引言 go 语言中 func (c *Title) 和 func (c Title) 两个方法的传参差一个 * 号二者的区别是一个是指针类型一个是值类型下面我们简单整理下二者在 Func 中的差异和使用示例。 二.接收者类型 指针接收者 (*Type) 当方法的接收者是指针类型时方法可以修改接收者指向的对象的状态。由于指针接收者可以避免复制整个对象因此适合用于较大的结构体。可以通过指针调用方法或通过值调用方法Go 会自动将值的地址传递给指针接收者。 值接收者 (Type) 当方法的接收者是值类型时方法接收者的值是通过值复制传递的因此方法内部对接收者的任何修改不会影响到原始对象。适合用于小型结构体或者值不变的方法。只有值调用方法时才会调用值接收者的方法不能通过指针调用该方法。 三.代码示例 1.指针接收者 package mainimport fmt// 定义结构体 type Title struct {title string }// 使用指针接收者的方法 func (c *Title) SetTitle(title string) {c.title title }// 使用指针接收者的方法 func (c *Title) GetTitle() string {return c.title }func main() {advisor : Title{}// 调用 SetTitle 方法通过值调用-- Go 会自动将地址传递给指针接收者advisor.SetTitle(New Title)// 调用 GetTitle 方法获取设置后的值fmt.Println(advisor.GetTitle()) }2.值接收者 package mainimport fmt// 定义结构体 type Title struct {title string }// 使用值接收者的方法 func (c Title) SetTitle(title string) {c.title title }// 使用值接收者的方法 func (c Title) GetTitle() string {return c.title }func main() {advisor : Title{}// 调用 SetTitle 方法通过值调用advisor.SetTitle(New Title)// 调用 GetTitle 方法fmt.Println(advisor.GetTitle()) } 3.运行结果对比 在第一种情况下指针接收者调用 SetTitle 后GetTitle 会返回 New Title因为 SetTitle 方法修改了 title 字段。在第二种情况下值接收者调用 SetTitle 后GetTitle 仍然会返回空字符串 因为 SetTitle 方法修改的是 advisor 的副本而不是原始对象。 4.代码修改 下面我们对值接收者代码做简单修改使得我们 GetTitle 方法可以获得结果由于值类型只能获取原始结构的信息无法修改信息所以 SetTitle 这里是不生效的如果想要获取 title我们在初始化结构体的时候就定义好 title 的值这样就可以获取了。 package mainimport fmt// 定义结构体 type Title struct {title string }// 使用值接收者的方法 func (c Title) SetTitle(title string) {c.title title }// 使用值接收者的方法 func (c Title) GetTitle() string {return c.title }func main() {advisor : Title{}advisor.title New Title V2// 调用 SetTitle 方法通过值调用advisor.SetTitle(New Title)// 调用 GetTitle 方法fmt.Println(advisor.GetTitle()) }5.刨根问底 advisor : Title{}advisor.title New Title V2 Q: 上面我们通过下述方法为 Title 类设置了标题按照上面的思维能够修改变量那这里 advisor 是指针还是值呢?  A: advisor 不是指针而是一个 Title 结构体类型的实例。这个实例是值类型的而不是指针类型的。 值类型 当使用 Title{} 初始化结构体实例时产生的是一个值类型的变量。这意味着 advisor 变量直接存储结构体实例的数据。 package mainimport fmttype Title struct {title string }func main() {// 初始化结构体实例advisor 是 Title 类型的值advisor : Title{}// 设置字段值advisor.title New Title V2// 输出fmt.Println(advisor.title) // 输出: New Title V2 }指针类型 如果需要得到一个指针类型可以使用  操作符这样 advisor 变量将是一个指向 Title 结构体实例的指针。 func main() {// 初始化结构体实例并获取其指针advisor : Title{}// 通过指针来设置字段值advisor.title New Title V2// 输出fmt.Println(advisor.title) // 输出: New Title V2 } 上面两个方法都会输出 New Title V2这里如果单纯构建结构体 Title 的话 Title 和 TItle 是一样的它们在初始化结构体实例方面并没有区别。显著的区别在于将实例传递到函数中时的行为。 package mainimport fmttype Title struct {title string }func main() {// 值类型advisorValue : Title{}advisorValue.title dddfmt.Println(Value Type:, advisorValue.title)// 指针类型advisorPointer : Title{}advisorPointer.title dddfmt.Println(Pointer Type:, advisorPointer.title) }上面两个方法达到的需求是一样的那实际场景中我们该写哪种呢? 简单和小型结构体: 如果你的结构体很简单并且字段比较少如本例中的 Title 结构体且多数情况下仅做读取操作使用值类型创建可以更加直观和简单。推荐使用值类型advisorValue : Title{} 修改结构体数据: 如果你的代码需要在多个函数中修改结构体字段使用指针类型可以避免复制整个结构体有助于提高性能。推荐使用指针类型advisorPointer : Title{} 一致性: 如果整个代码库中大多数情况下都需要频繁对结构体进行修改使用指针类型可以保持一致性避免混淆。在这种情况下可以统一使用指针类型。 我们上面的示例中如果 title 写死了只做读取那我们就 : Title如果我们需要频繁修改 title 值就是用 : Title。 四.总结 指针接收者 用于需要修改接收者内部状态的方法并且适合较大的结构体实例。值接收者 用于不需要修改内部状态的方法只适用于小型结构体或方法调用时不涉及修改操作。 选择使用指针接收者还是值接收者取决于您的具体需求和结构体的大小。对于需要修改内部状态、传递较大结构体的情况推荐使用指针接收者。对于不修改状态的情况可以使用值接收者。
http://www.hkea.cn/news/14431702/

相关文章:

  • 响应式网站写法网站建设品牌
  • 吉林省建设集团网站drupal网站开发
  • 旅游网站规划方案全网营销网站怎么做
  • 做家常菜的网站php 导航网站
  • 懂做游戏钓鱼网站的几何图形生成网站
  • 中国查企业的网站怎么给网站做背景
  • 漳州做网站多少钱建设网站app
  • 高品质的佛山网站建设网站怎么查哪家公司做的
  • 鲜花网站素材如何建立内部网站
  • 河北省建设机械协会官方网站首页怎么用flash做网站
  • 重庆有多少网站网站模板 北京公司
  • 学校精品课网站怎么做ASP网站开发技术期末考试
  • 自己制作一个网站需要多少钱济南广告设计公司前十名
  • 秦皇岛建网站公司wordpress音乐门户主题
  • 毕设做网站类型企业微信登录网页版
  • 济宁网站开发赤峰住房城乡建设部网站
  • 重庆制作网站的公司排名郴州哪个县最繁华
  • 做网站是com好还是cn好jsp网站自身安全性通过什么技术实现
  • 花瓣是模仿哪个网站网络营销的特点有()
  • 微软网站开发技术快递网站推广怎么做
  • 网站诊断案例建视频网站系统
  • 老板让我做镜像网站犯法吗怎么做提卡密网站
  • 龙泉市建设局网站佛山市建设网站
  • 团购网站app制作网站聚合优化
  • 网站界面优化nofollow标签对网站收录的影响
  • 影响网站排名的因素如何推广自己的微信公众号
  • 自己的主机做服务器网站如何备案做ppt好的模板下载网站有哪些
  • 关系的网站佛山网站建设优化企业
  • 企业网站使用不规范地图如何处罚网站的上传与发布
  • 网站框架设计图干运维为什么会废了