iT邦幫忙

0

Golang-Method

  • 分享至 

  • xImage
  •  

GitLab:https://gitlab.com/whitefloor40567/golangnote

在發Interface裡其實應該先說Method的用法的
這樣才會比較好理解Interface該如何使用

Extra Problem

另外Method Package裡沒有再區分資料夾
如果用

go run main.go

就會出現

./main.go:4:10: undefined: PersonalData

關於此問題可以參照下列討論,就可以知道為什麼了XD
https://stackoverflow.com/questions/21293000/go-build-works-fine-but-go-run-fails

https://stackoverflow.com/questions/23695448/how-to-run-all-go-files-within-current-directory-through-the-command-line-mult

建議使用的run command

go run .

Method

詳細的main參數請參照GitLab

package main

import "log"

// PersonalData ...
type PersonalData struct {
	Name string
	Age  int
}

//method 宣告
// (struct).func(){}

//如果方法裡的struct沒有用point,將只能讀取struct裡的數值,而不能做修改
//且如果struct裡變數眾多,用point將可以增加程式效率
//所以建議用method時的統一寫法都用point傳入
//也可以進一步統一程式碼風格,增加維護的方便性

// ChangeDataFirst ... no point
func (p PersonalData) ChangeDataFirst(name string, age int) {
	log.Println("---Start ChangeDataFirst---")

	p.Name = name
	p.Age = age
}

// ChangeDataSecond ... Use point
func (p *PersonalData) ChangeDataSecond(name string, age int) {
	log.Println("---Start ChangeDataSecond---")

	p.Name = name
	p.Age = age
}

// PrintData ...
func (p PersonalData) PrintData() {
	log.Println("---PrintData---")

	log.Println(p.Name)
	log.Println(p.Age)
}

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言