Go速成无压力【十一】:方法 · 上(Methods)

(一)方法

Go没有类,然而,你可以定方法在类型上
一个方法是一个带有指定接收参数的函数
接收器出现的位置位于 func 关键字和方法名字的中间

package main

import (
	"fmt"
)

type Student struct {
	num, name string
}

func (v Student) info() string {
	return "学号为:" + v.num + " / 姓名为:" + v.name
}

func main() {
	v := Student{"0001", "会写Golang的科班生"}
	fmt.Println(v.info())
}

在这里插入图片描述



(二)方法是函数

切记:一个方法只是一个带有接收参数的函数

package main
import "fmt"

type triangle struct{
	a , b , c int
}

func perimeter(t triangle) int{
	return t.a+t.b+t.c
}

func main(){
	v := triangle{10,20,21}
	fmt.Println("三角形的周长为:",perimeter(v))
}

在这里插入图片描述



(三)方法·续

你也可以声明一个无类型方法
你可以声明一个带有接参数的方法,且方法的类型定义在同样的包中,你不可以声明一个类型在其他包中的且带有接收参数的方法

package main
import (
	"fmt"
	"math"
)

type numFloat float64

func (f numFloat) T() float64{
	if f>0 {
		return float64(-f)
	}
	return float64(f)
}

func main(){
	f := numFloat(math.Pi)
	fmt.Println(f.T())	
}

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值