Skip to content

Commit

Permalink
update README
Browse files Browse the repository at this point in the history
  • Loading branch information
dengsgo committed Dec 3, 2023
1 parent fcd7b93 commit c8c31cf
Show file tree
Hide file tree
Showing 3 changed files with 129 additions and 13 deletions.
39 changes: 39 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -233,6 +233,45 @@ func main() {
g.Printf("useHitUseNonzeroLint() = %+v", useHitUseNonzeroLint())
g.Printf("useHitBothUseLint() = %+v", useHitBothUseLint())
g.Printf("useHitUseMultilineLintDecor() = %+v", useHitUseMultilineLintDecor())

section("types.go")
// Support comment `type T types` type declaration, decorator will automatically decorate proxy all methods with `T` or `*T` as the receiver;
{
// structural
s := &structType{"main say hello"}
g.PrintfLn("s.Name() = %+v", s.Name())
s.StrName("StrName() set")
g.PrintfLn("s.Name() = %+v", s.Name())
s.empty()
}
{
// type base
v := varIntType(100)
g.PrintfLn("v.value() = %+v", v.value())
v.zeroSelf()
g.PrintfLn("v.value() = %+v", v.value())
}
{
// generic type T = int
genInt := &genericType[int]{}
g.PrintfLn("genInt.value() = %+v", genInt.value())
// generic type T = struct
genStruct := &genericType[struct{}]{}
g.PrintfLn("genStruct.value() = %+v", genStruct.value())
}

section("types_multiple.go")
// `type T types` 和它的方法同时使用装饰器。
// 方法上的装饰器优先执行
{
m := multipleStructStandType{}
m.sayHello()
}
{
m := multipleStructWrapType{}
m.sayNiHao()
}

}

```
Expand Down
43 changes: 41 additions & 2 deletions README.zh_cn.md
Original file line number Diff line number Diff line change
Expand Up @@ -211,7 +211,7 @@ func main() {
g.PrintfLn("Sum(1, 2, 3, 4, 5, 6, 7, 8, 9) = %+v", Sum(1, 2, 3, 4, 5, 6, 7, 8, 9))

section("method.go")
// 方法使用装饰器
// 示例:方法使用装饰器
{
m := &methodTestPointerStruct{}
m.doSomething("main called")
Expand All @@ -220,7 +220,7 @@ func main() {
m := methodTestRawStruct{}
m.doSomething("main called")
}

section("withdecorparams.go")
// 示例:使用带有参数的装饰器,如何传值
g.PrintfLn("useArgsDecor() = %+v", useArgsDecor())
Expand All @@ -229,6 +229,45 @@ func main() {
g.Printf("useHitUseNonzeroLint() = %+v", useHitUseNonzeroLint())
g.Printf("useHitBothUseLint() = %+v", useHitBothUseLint())
g.Printf("useHitUseMultilineLintDecor() = %+v", useHitUseMultilineLintDecor())

section("types.go")
// 示例:给 `type T types` 类型声明添加注释//go:decor F,decorator 会自动使用装饰器 F 装饰代理以 T 或者 *T 为接收者的所有方法:
{
// 结构体
s := &structType{"main say hello"}
g.PrintfLn("s.Name() = %+v", s.Name())
s.StrName("StrName() set")
g.PrintfLn("s.Name() = %+v", s.Name())
s.empty()
}
{
// 基础类型
v := varIntType(100)
g.PrintfLn("v.value() = %+v", v.value())
v.zeroSelf()
g.PrintfLn("v.value() = %+v", v.value())
}
{
// 泛型结构体 T = int
genInt := &genericType[int]{}
g.PrintfLn("genInt.value() = %+v", genInt.value())
// 泛型结构体 T = struct
genStruct := &genericType[struct{}]{}
g.PrintfLn("genStruct.value() = %+v", genStruct.value())
}

section("types_multiple.go")
// 示例:`type T types` 和它的方法同时使用装饰器。
// 方法上的装饰器优先执行
{
m := multipleStructStandType{}
m.sayHello()
}
{
m := multipleStructWrapType{}
m.sayNiHao()
}

}

```
Expand Down
60 changes: 49 additions & 11 deletions example/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,16 +25,16 @@ func main() {
// 泛型函数使用装饰器
g.PrintfLn("Sum(1, 2, 3, 4, 5, 6, 7, 8, 9) = %+v", Sum(1, 2, 3, 4, 5, 6, 7, 8, 9))

section("method.go")
// 方法使用装饰器
{
m := &methodTestPointerStruct{}
m.doSomething("main called")
}
{
m := methodTestRawStruct{}
m.doSomething("main called")
}
section("method.go")
// 结构体方法使用装饰器
{
m := &methodTestPointerStruct{}
m.doSomething("main called")
}
{
m := methodTestRawStruct{}
m.doSomething("main called")
}

section("withdecorparams.go")
// 使用带有参数的装饰器,如何传值
Expand All @@ -44,6 +44,44 @@ func main() {
g.Printf("useHitUseNonzeroLint() = %+v", useHitUseNonzeroLint())
g.Printf("useHitBothUseLint() = %+v", useHitBothUseLint())
g.Printf("useHitUseMultilineLintDecor() = %+v", useHitUseMultilineLintDecor())
}

section("types.go")
// 给 `type T types` 类型声明添加注释//go:decor F,decorator 会自动使用装饰器 F 装饰代理以 T 或者 *T 为接收者的所有方法:
{
// 结构体
s := &structType{"main say hello"}
g.PrintfLn("s.Name() = %+v", s.Name())
s.StrName("StrName() set")
g.PrintfLn("s.Name() = %+v", s.Name())
s.empty()
}
{
// 基础类型
v := varIntType(100)
g.PrintfLn("v.value() = %+v", v.value())
v.zeroSelf()
g.PrintfLn("v.value() = %+v", v.value())
}
{
// 泛型结构体 T = int
genInt := &genericType[int]{}
g.PrintfLn("genInt.value() = %+v", genInt.value())
// 泛型结构体 T = struct
genStruct := &genericType[struct{}]{}
g.PrintfLn("genStruct.value() = %+v", genStruct.value())
}

section("types_multiple.go")
// `type T types` 和它的方法同时使用装饰器。
// 方法上的装饰器优先执行
{
m := multipleStructStandType{}
m.sayHello()
}
{
m := multipleStructWrapType{}
m.sayNiHao()
}

}
```

0 comments on commit c8c31cf

Please sign in to comment.