个人技术分享

前置

package main
​
import (
    "fmt"
)
​
// 矩形结构体
type Rectangle struct {
    Length int
    Width  int
}
​
// 计算矩形面积
func (r *Rectangle) Area() int {
    return r.Length * r.Width
}
​
func main() {
    r := Rectangle{4, 2}
    // 调用 Area() 方法,计算面积
    fmt.Println(r.Area())
}
 

type Person struct {
	name string
	age  int
}

type Stu struct {
	Person
	school string
}

func (p *Person) show() {
	fmt.Println(p.name+":{}", p.age)
}

func main() {
	s := Stu{Person{"ydy", 19}, "nnu"}
	s.show()
}
 
type shape interface {
    Area() int
}
​
type Square struct {
    w int
}
​
type Rectangle struct {
    l, w int
}
​
func (s *Square) Area() int {
    return s.w * s.w
}
func (r *Rectangle) Area() int {
    return r.l * r.w
}
​
func main() {
    r := &Rectangle{10, 2}
    q := &Square{10}
​
    // 创建一个 Shaper 类型的数组
    shapes := []shape{r, q}
    // 迭代数组上的每一个元素并调用 Area() 方法
    for n, _ := range shapes {
        fmt.Println("图形数据: ", shapes[n])
        fmt.Println("它的面积是: ", shapes[n].Area())
    }
}