Go语言开发基础——包内函数的实例化调用方式

Go语言开发过程中,实现某功能的包,包含一个变量和一个函数方法,例如下面所示:

package Car

import "fmt"

var	m_Name string

func Name() {
	fmt.Println(m_Name)
}

在调用过程中如下所示:

package main

import	"Car"

func main() {
	Car.SetName("volvo")
	Car.Name()

    Car.SetName("Link&co")
	Car.Name()
}

这样写的问题点在于,没有实例化的Car对象,第二次调用是覆盖了前项的操作,无法同时保留多个对象。


修改后的代码如下:

使用结构体,将变量封装起来,函数方法需要使用结构体的指针调用

package Car

import "fmt"

type Car struct {
	m_Name string
}

func InitCar(name string) *Car {
	var c Car
	c.m_Name = name
	return &c
}

func (pCar *Car) Name() {
	fmt.Println(pCar.m_Name)
}

调用方法如下:

package main

import	"demo"

func main() {
	pCar1 := demo.InitCar("volvo")
	pCar1.Name()

	pCar2 := demo.InitCar("Link&co")
	pCar2.Name()
}

这样就可以同时保持多个对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值