1. 程式人生 > >go 接口以及對象的使用

go 接口以及對象的使用

rec 以及 send declare not port chan string value

// Sample program to show how to declare methods and how the Go
// compiler supports them.
package main

import (
    "fmt"
)

// user defines a user in the program.
type user struct {
    name  string
    email string
}

// notify implements a method with a value receiver.
func (u user) notify() {
    fmt.Printf(
"Sending User Email To %s<%s>\n", u.name, u.email) } // changeEmail implements a method with a pointer receiver. func (u *user) changeEmail(email string) { fmt.Printf("change Email from <%s> To <%s>\n", u.email, email) u.email = email } // main is the entry point for the application.
func main() { // Values of type user can be used to call methods // declared with a value receiver. bill := user{"Bill", "[email protected]"} bill.notify() // Pointers of type user can also be used to call methods // declared with a value receiver. lisa := &user{"Lisa", "[email protected]
"} lisa.notify() fmt.Println() // Values of type user can be used to call methods // declared with a pointer receiver. bill.changeEmail("[email protected]") bill.notify() // Pointers of type user can be used to call methods // declared with a pointer receiver. lisa.changeEmail("[email protected]") lisa.notify() }

輸出

Sending User Email To Bill<[email protected]>
Sending User Email To Lisa<[email protected]>

change Email from <[email protected]> To <[email protected]>
Sending User Email To Bill<[email protected]>
change Email from <[email protected]> To <[email protected]>
Sending User Email To Lisa<[email protected]>

go 接口以及對象的使用