Go的OOP

package main

import (
	"fmt"
)

type Point struct {
	px float32;
	py float32;
}
// 记住哦  *Point前面的pont只是一个形参  就是实例化对象的形参  只是在此函数中有用
// 出了此函数  没有意义了
// 后面在进行实例化  调用此函数的时候  还会进行再次实例化  那才是实参
// 所以说前面的虚参实例化是没有意义的,其实际地址是不一样的  只是名称可能会一样  
// 所以即使实例化对象的名称一样  他们的值也没有办法进行跨函数传值设置值  所以只能通过引用传值进行传值
// 对类的属性进行设置值
// 这样就保存在了类的成员属性之中里面了
func (pont *Point) setName(px,py float32){
	pont.px=px;
	pont.py=py;
	//不加*返回1200  加*返回1212
	//不加*的话  意味着这边只是复制值  复制给了point.px point.py
	// 但是之后的数值没有更改  说明只是对当前的方法里面的值进行了更改  在方法之外不会有效
	fmt.Print(pont.px,pont.py);
}

func (poin *Point) getName()(float32,float32){
	return poin.px,poin.py;
}


func main(){
	point:=new(Point);
	point.setName(1.0,2.0);
	px,py:=point.getName();
	fmt.Print(px,py);

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值