转Golang的第一天(环境的搭建、结构体和接口、init()函数、defer块、函数标签和并发编程)
以下是一个简单的Go语言程序,演示了如何使用结构体和接口,以及如何使用init()
函数和defer
块。
package main
import (
"fmt"
)
// 定义一个结构体
type ExampleStruct struct {
field1 int
field2 string
}
// 定义一个接口
type ExampleInterface interface {
method1()
method2() string
}
// 结构体实现接口
func (es *ExampleStruct) method1() {
es.field1++
}
func (es *ExampleStruct) method2() string {
return fmt.Sprintf("field2: %s", es.field2)
}
// init函数在main函数之前执行
func init() {
fmt.Println("init function is called")
}
func main() {
// 创建结构体实例
example := &ExampleStruct{field1: 10, field2: "Hello, World"}
// 调用方法
example.method1()
message := example.method2()
fmt.Println("field1:", example.field1)
fmt.Println(message)
// defer块用于注册在函数退出时执行的函数调用
defer fmt.Println("defer block is called")
}
这段代码首先定义了一个结构体ExampleStruct
和一个接口ExampleInterface
。然后,结构体实现了这个接口的方法。init()
函数在main()
函数之前执行,并打印一条消息。main()
函数中,创建了结构体的一个实例,并调用了这个实例的方法。最后,使用defer
保证了在函数退出时打印一条消息。
评论已关闭