首页 > 其他分享 >Go新手容易踩的坑(函数与方法)

Go新手容易踩的坑(函数与方法)

时间:2024-07-14 09:07:45浏览次数:16  
标签:接收器 函数 fmt testing 123 Go 新手 Balance Consumer

方法的接收器 —— 对象接收器与指针接收器

对象接收器不会更新属性

 

package tests

import (
    "fmt"
    "testing"
)

type Consumer struct {
    Balance int64
}

// 对象接收器
func (c Consumer) add(v int64) {
    c.Balance += v
}

func TestT1(t *testing.T) {

    c := Consumer{Balance: 10}
    
    // 不会改变...
    c.add(100)

    fmt.Println("c.Balance:>> ", c.Balance) // 10
}

 

指针接收器可以更新属性

 

package tests

import (
    "fmt"
    "testing"
)

type Consumer struct {
    Balance int64
}

// 指针接收器
func (c *Consumer) add(v int64) {
    c.Balance += v
}

func TestT1(t *testing.T) {

    c := Consumer{Balance: 10}
    
    // 会改变...
    c.add(100)

    fmt.Println("c.Balance:>> ", c.Balance) // 110
}

 

123

123

123

123

123

标签:接收器,函数,fmt,testing,123,Go,新手,Balance,Consumer
From: https://www.cnblogs.com/paulwhw/p/18301102

相关文章

  • 【价格型需求响应】基于Logistic函数的负荷转移率模型需求响应研究(Matlab代码实现)
     ......
  • Android C++系列:Linux常用函数和工具
    1.时间函数1.1文件访问时间#include<sys/types.h>#include<utime.h>intutime(constchar*name,conststructutimebuf*t);返回:若成功则为0,若出错则为-1如果times是一个空指针,则存取时间和修改时间两者都设置为当前时间;如果times是非空指针,则存取时......
  • 定积分之奇偶函数公式
    brief若\(f(x)\)在\([-a,a]\)上连续且为偶函数,则:\[\int_{-a}^{a}f(x)dx=2\int_{0}^{a}f(x)dx\]若\(f(x)\)在\([-a,a]\)上连续且为奇函数,则:\[\int_{-a}^{a}f(x)dx=0\]proveinvoke:定积分的性质Part0\[\begin{align}根据定积分的性质2:\\\int_{-a}^{a}f(x......
  • c++初始化列表和构造函数初始化的区别
    在C++中,初始化列表和构造函数初始化是两种不同的方法用于初始化类的成员变量。初始化列表(InitializationList):初始化列表是在构造函数的参数列表后面使用冒号(:),然后跟随着每个成员变量的初始化方式。通过初始化列表,可以在对象构造时直接为成员变量赋值,而不是在构造函数体内......
  • 欧拉函数(模板)
    873.欧拉函数-AcWing题库874.筛法求欧拉函数-AcWing题库#include<bits/stdc++.h>usingnamespacestd;intget_erlers(intx){intres=x;for(inti=2;i<=x/i;i++){if(x%i==0){res=res/i*(i-1);while(x%i......
  • 0基础学python-10:函数的定义,调用以及参数
    目录前言1.函数的定义2.函数的调用3.函数的参数<1>必选参数<2 >默认参数<3> 可变参数<4>关键字参数 <5> 命名关键字参数 4.注意事项前言        函数是一段完成特定任务的代码块,可以通过定义、调用和传递参数来实现代码的模块化和......
  • c++继承特点,菱形继承,访问方式,默认成员函数
    目录继承概念继承特性继承后成员访问的方式的变化子父类成员重命名派生类的默认成员函数​编辑菱形继承小tip继承概念继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,......
  • 从新手到高手:Scala函数式编程完全指南,Scala 方法与函数(10)
    1、Scala方法与函数Scala有方法与函数,二者在语义上的区别很小。Scala方法是类的一部分,而函数是一个对象可以赋值给一个变量。换句话来说在类中定义的函数即是方法。Scala中的方法跟Java的类似,方法是组成类的一部分。Scala中的函数则是一个完整的对象,Scala中的函......
  • 函数(实参以及形参)
    实际参数(实参)    实际参数就是在调用函数时传递给函数的具体值。这些值可以是常量、变量、表达式或更复杂的数据结构。实参的值在函数被调用时传递给对应的形参,然后函数内部就可以使用这些值来执行相应的操作。intmain(){ inta=0; intb=0; scanf("%d%d",......
  • ​Chrome 插件: GoFullPage 一键搞定全网页截图
    在互联网时代,网页截图已成为我们日常工作和生活中不可或缺的部分。无论是保存重要信息、制作教程,还是分享有趣的内容,截图功能都显得尤为重要。然而,常规的截图工具往往只能截取当前屏幕的内容,对于长网页则显得力不从心。你是否也曾为此苦恼过? 如果你曾经尝试过用浏览器自......