go语言:为类型添加方法

转载: https://docs.hacknode.org/gopl-zh/ch2/ch2-05.html

package main

import (
	"fmt"
) 

// 声明一个表示摄氏温度的类型 
type Celsius float64

// 使用该类型创建并且初始化一个变量 
var c Celsius  = 63.34

// 为该类型添加一个方法 目的是格式化打印这个值 
// // func中的 (c Celsius) 类似于传入一个对于当前类型化的引用??? 然后就可以为当前类型添加方法了吗 
func (c Celsius) String() string {return fmt.Sprintf("%g°C", c) }


func main() {
	// 添加 String 方法之后 不管是 fmt.Println(c) 还是 直接调用c.String() 
	// 都会出现格式化打印的结果

	// 许多类型都会定义一个String方法,因为当使用fmt包的打印方法时,将会优先使用该类型对应的String方法返回的结果打印
	// 有点类似于 Python 中的魔法方法 __str__ 和 __repr__
	fmt.Println(c)
	ret := c.String()
	fmt.Println(ret)

	
}

更新时间: 2019-11-23

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值