Skip to content

Commit 1091265

Browse files
committed
20220329
1 parent b8b44e7 commit 1091265

File tree

2 files changed

+68
-1
lines changed

2 files changed

+68
-1
lines changed

README.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,12 @@
55

66
意义:分享知识,提升自己
77

8+
目标:为了找个java-go双语言开发的**高工资**职位
9+
810
<h1><a href="https://github.com/java-aodeng/golang-examples">Go语言从入门到放弃</a></h1>
911

12+
> 基础部分,看不懂的话,这边建议直接放弃
13+
1014
<a href="https://github.com/java-aodeng/golang-examples/blob/master/go-01/1.md">第01章 关于 Go 语言的介绍</a>
1115

1216
<a href="https://github.com/java-aodeng/golang-examples/blob/master/go-02/1.md">第02章 变量,常量以及与其他语言的差异</a>
@@ -21,6 +25,7 @@
2125

2226
<a href="https://github.com/java-aodeng/golang-examples/blob/master/go-07/1.md">第07章 Map 声明、元素访问及遍历</a>
2327

28+
> 简单部分,直接看代码,就不加注释了
2429
2530
[第08章 Map与工厂模式,在Go语言中实现Set](https://github.com/java-aodeng/golang-examples/blob/master/go-08/map_ext_test.go)
2631

@@ -32,7 +37,9 @@
3237

3338
[第13章 Go语言的相关接口](https://github.com/java-aodeng/golang-examples/blob/master/go-13/interface_test.go)
3439

35-
第14章 扩展与复用
40+
> 后面的逐渐有趣了,尽量加上注释:)
41+
42+
[第14章 扩展与复用](https://github.com/java-aodeng/golang-examples/blob/master/go-14/extension_test.go)
3643

3744
第15章 不一样的接口类型,一样的多态
3845

go-14/extension_test.go

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
package go_14
2+
3+
import (
4+
"fmt"
5+
"testing"
6+
)
7+
8+
//go语言扩展类似java的继承 但又不完全是
9+
//这是一只猪类
10+
type Pig struct {
11+
}
12+
13+
func (p *Pig) Speak() {
14+
fmt.Print("我是猪")
15+
}
16+
17+
func (p *Pig) MyNameIs(name string) {
18+
p.Speak()
19+
fmt.Print("my name is" + name)
20+
}
21+
22+
//这是一条狗类 继承于猪类
23+
type Dog struct {
24+
Pig
25+
}
26+
27+
func (d *Dog) Speak() {
28+
//类似于java的重载
29+
fmt.Print("我不是猪,我是狗")
30+
}
31+
32+
func (d *Dog) MyNameIs(name string) {
33+
d.Speak()
34+
fmt.Print("my name is" + name)
35+
}
36+
37+
//这是一个傻逼
38+
type SB struct {
39+
Pig
40+
}
41+
42+
func (s *SB) Speak() {
43+
fmt.Print("我是一个傻逼")
44+
}
45+
46+
func TestDog(t *testing.T) {
47+
dog := new(Dog)
48+
dog.MyNameIs("你爸爸")
49+
50+
fmt.Print("========\n")
51+
52+
sb := new(SB)
53+
sb.MyNameIs("你爷爷")
54+
}
55+
56+
//运行结果
57+
//=== RUN TestDog
58+
//我不是猪,我是狗my name is你爸爸========
59+
//我是猪my name is你爷爷--- PASS: TestDog (0.00s)
60+
//PASS

0 commit comments

Comments
 (0)