方法的使用深度剖析2

package main

import “fmt”

/*
Golang中的方法作用在制定的數據類型上的(即:和制定的數據類型綁定),因此自定義類型,都可以有方法,而不僅僅是struct,比如int,float32等都可以有方法
*/
type integer int
//編寫一個方法,可以改變i的值

func(i integer)print(){
fmt.Println(“i=”,i)
}
//編寫一個方法,可以改變i的值
func(i *integer)change(){
*i = *i+1
}
type Student struct {
Name string
Age int

}
//給*Student實現方法string()
func(stu *Student)String()string{
str := fmt.Sprintf(“Name=[%v] Age=[%v]”,stu.Name,stu.Age)
return str
}

func main(){
/*
方法注意事項和細節討論
1)結構體類型是值類型,在方法調用中,遵守值類型的傳統機制,是值拷貝傳遞方式
2)如程序員希望在方法中,修改結構體變量的值,可以通過結構體指針的方式來處理。
3)Golang中的方法作用在制定的數據類型上的(即:和制定的數據類型綁定),因此自定義類型,都可以有方法,而不僅僅是struct,比如int,float32等都可以由方法
4)方法的訪問範圍控制的規則,和函數一樣,方法名首字母小寫,只能在本包訪問,方法首字母大寫,可以在本包和其他包訪問
5)如果一個變量實現了String()這個方法,那麽fmt.Println默認會調用這個變量的String()進行輸出
*/
var i integer = 10
i.print()
i.change()
fmt.Println(“i=”,i)

 //定義一個Student變量
 stu := Student{
 	Name:"tom",
 	Age:20,
 }
 //如果你實現了*Student類型的String方法,就會自動調用
 fmt.Println(&stu)

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值