go圣经 ——方法

这里只是记录了自己学过一遍但是在圣经(狼吞虎咽)中又看到的新鲜玩意

我们又称之为选择器

package main

import "fmt"

type Rect struct {
    width, height float64
}

// 定义一个方法来计算矩形的面积
func (r Rect) Area() float64 {
    return r.width * r.height
}

func main() {
    rect := Rect{width: 3, height: 4}
    area := rect.Area() // 这里选择了 Rect 类型的实例 rect,并调用其 Area 方法来计算面积
    fmt.Println("Area:", area)
}

方法是与结构体相关联的函数,它允许我们从Rect类型的实例中选择并计算其面积

选择器中有多个同名的方法会报错

type ColoredPoint struct {
    Point
    color.RGBA
}

比如都有max方法在Point和RGBA中,就会报错

我们来看下面两组代码:

var (
    mu sync.Mutex // guards mapping
    mapping = make(map[string]string)
)

func Lookup(key string) string {
    mu.Lock()
    v := mapping[key]
    mu.Unlock()
    return v
}
var cache = struct {
    sync.Mutex
    mapping map[string]string
}{
    mapping: make(map[string]string),
}


func Lookup(key string) string {
    cache.Lock()
    v := cache.mapping[key]
    cache.Unlock()
    return v
}

在第二组代码中我们将这两个变量联合起来变成了一个有mutex方法的 结构体变量,这是一个匿名的struct,同时我们又能使用mapping这个变量,使得结构更加统一

方法值和方法表达式

我们的选择器可以不需要接收器就可以被调用

就是说:

type Rocket struct { /* ... */ }
func (r *Rocket) Launch() { /* ... */ }
r := new(Rocket)
time.AfterFunc(10 * time.Second, func() { r.Launch() })
time.AfterFunc(10 * time.Second, r.Launch)

省略了上面的匿名函数

相关推荐

  1. go圣经 ——方法

    2024-04-29 16:54:02       39 阅读
  2. <span style='color:red;'>Go</span> <span style='color:red;'>方法</span>

    Go 方法

    2024-04-29 16:54:02      49 阅读
  3. Go 方法

    2024-04-29 16:54:02       38 阅读
  4. client-go使用方法

    2024-04-29 16:54:02       61 阅读
  5. go方法定义

    2024-04-29 16:54:02       39 阅读
  6. 男人圣经 10

    2024-04-29 16:54:02       34 阅读
  7. 男人圣经 14

    2024-04-29 16:54:02       25 阅读
  8. Go中定义方法

    2024-04-29 16:54:02       68 阅读
  9. 一文了解 Go 方法

    2024-04-29 16:54:02       61 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-29 16:54:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-29 16:54:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-29 16:54:02       87 阅读
  4. Python语言-面向对象

    2024-04-29 16:54:02       96 阅读

热门阅读

  1. 【AI大模型】Prompt Engineering 基础知识与挑战

    2024-04-29 16:54:02       35 阅读
  2. 【Spring AI】03. 图像生成 API

    2024-04-29 16:54:02       31 阅读
  3. git版本控制基础工作流

    2024-04-29 16:54:02       31 阅读
  4. k8s的PV/PVC详解以及使用范例

    2024-04-29 16:54:02       29 阅读
  5. Android面试

    2024-04-29 16:54:02       32 阅读
  6. 从零开始搭建SpringCloud

    2024-04-29 16:54:02       32 阅读
  7. react怎么只让接口请求一次

    2024-04-29 16:54:02       31 阅读
  8. P9586 「MXOI Round 2」游戏

    2024-04-29 16:54:02       32 阅读
  9. vue 快速入门 系列 —— 玩转 CMS

    2024-04-29 16:54:02       26 阅读
  10. 【校招VIP】985 211求职策略

    2024-04-29 16:54:02       29 阅读