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

flash网站尺寸临沂网站建设多少钱

flash网站尺寸,临沂网站建设多少钱,合肥专业做淘宝网站推广,wordpress自定义作者连接在 Go 语言中,结构体方法是指附加到结构体类型上的函数。这些方法可以通过结构体的实例来调用。方法的接收者(receiver)指定了该方法属于哪个结构体类型。接收者可以是一个值类型或指针类型。 定义结构体方法 下面是如何为一个结构体定义方…

在 Go 语言中,结构体方法是指附加到结构体类型上的函数。这些方法可以通过结构体的实例来调用。方法的接收者(receiver)指定了该方法属于哪个结构体类型。接收者可以是一个值类型或指针类型。

定义结构体方法

下面是如何为一个结构体定义方法的示例:

package main

import (
    "fmt"
)

type Rectangle struct {
    Width, Height float64
}

// 值接收者方法
func (r Rectangle) Area() float64 {
    return r.Width * r.Height
}

// 指针接收者方法
func (r *Rectangle) Scale(factor float64) {
    r.Width *= factor
    r.Height *= factor
}

func main() {
    rect := Rectangle{Width: 3, Height: 4}

    // 调用值接收者方法
    fmt.Println("Area:", rect.Area()) // 输出: Area: 12

    // 调用指针接收者方法
    rect.Scale(2)
    fmt.Println("Scaled Rectangle:", rect) // 输出: Scaled Rectangle: {6 8}
}
 

方法接收者类型
1.值接收者:

  • 方法接收者是结构体的一个副本。
  • 适用于不需要修改接收者的场景。
  • 调用时,Go 会复制接收者的值。

2 指针接收者:

  • 方法接收者是结构体的指针。
  • 适用于需要修改接收者的场景。
  • 调用时,Go 不会复制接收者,而是直接使用其内存地址。

方法接收者是结构体的指针。

  • 值接收者适用于需要修改接收者的场景。
  • 指针接收者适合需要修改结构体状态的方法,或者结构体较大,复制成本高的情况。

自动解引用

调用方法时,Go 语言会自动处理指针和值之间的转换:

  • 如果你有一个结构体的值,但方法接收者是指针,Go 会自动取地址。
  • 如果你有一个结构体的指针,但方法接收者是值,Go 会自动解引用。

自动解引用和取地址的例子

package main

import (
    "fmt"
)

type Circle struct {
    Radius float64
}

// 值接收者方法
func (c Circle) Area() float64 {
    return 3.14 * c.Radius * c.Radius
}

// 指针接收者方法
func (c *Circle) Scale(factor float64) {
    c.Radius *= factor
}

func main() {
    // 创建一个 Circle 的实例
    c := Circle{Radius: 5}

    // 使用值调用指针接收者的方法
    // Go 自动取地址,因此可以直接用值调用
    c.Scale(2)
    fmt.Println("Scaled Radius:", c.Radius) // 输出: Scaled Radius: 10

    // 使用指针调用值接收者的方法
    // Go 自动解引用,因此可以直接用指针调用
    area := (&c).Area()
    fmt.Println("Area:", area) // 输出: Area: 314
}
 

解释:
1.值调用指针接收者的方法:

  • 当你使用 c.Scale(2) 时,Scale 方法的接收者是一个指针(*Circle),但我们用的是一个值(c)
  • Go 自动将 c 转换为 &c,即取 c 的地址,因此 Scale 方法可以正常执行。

2.指针调用值接收者的方法:

  • 当你使用 (&c).Area() 时,Area 方法的接收者是一个值(Circle),但我们用的是一个指针(&c)
  • Go 自动将 &c 解引用为 *(&c),即获取 c 的值,因此 Area 方法可以正常执行。

http://www.yayakq.cn/news/469924/

相关文章:

  • 北京网站设计建设wordpress自动 插件怎么用
  • 高州市网站建设构建微网站
  • 深圳福田做网站公司兴义建设局网站
  • 涪陵网站设计网站建设中模
  • 如何开网站详细步骤德州做网站公司
  • 有无广告销售版本"有广告免费无广告收费"网站网站开发哪些专业
  • 软件开发公司简介范文大全做网站优化时 链接名称"首页"有必要添加nofollow吗?
  • 网站做广告投放 要求做效果评估互动网站建设特点
  • 磐石网站建设哪个网站做网站好
  • dw做响应式网站跨境电商是什么平台
  • 做网站学哪种代码好php语言做的大网站
  • 深圳深网站建设服务中山古镇做网站
  • 惠州网站设计方案wordpress一数据库多网站
  • 网站开发算互联网公司吗跟公司产品做网站
  • 哪家建网站邯郸建设网
  • 青岛建站模板厂家自己开发网站需要什么技术
  • 简单个人网站阜阳恒亮做网站多少钱
  • 广州网站建设推广方法中国建设网官网登录入口
  • 机械类网站建设大连html5网站建设报价
  • 工会网站建设重庆建设工程安全管理网查询
  • 网站建设管理情况网站开发公司
  • c2c网站建设要多少钱新闻式软文经典案例
  • 网站开发实训安排wordpress使用端口
  • 杭州哪家公司做网站比较好网站建设白云
  • 上海住房与建设部网站网站网站程序架设
  • 鄂尔多斯市网站建设wordpress腾讯云搭建网站
  • 嘉兴高端网站wordpress 阿里云 邮件注册
  • 北京人力资源网站360免费建站视频
  • 临沂网站公司哪家好玄武网站制作收费报价
  • 山西住房和城乡建设部网站苏州网页优化软件