Skip to content

Commit 2284f54

Browse files
committed
feat: example code
1 parent 5851401 commit 2284f54

23 files changed

+590
-18
lines changed

.idea/.gitignore

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

README.md

Lines changed: 41 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -51,23 +51,52 @@ uint32
5151
uint64
5252
```
5353

54-
# string
54+
# Example Code
5555

56-
# int
57-
58-
# float32
59-
60-
# float64
61-
62-
# bool
56+
其它类型用法类似:
6357

6458
```go
6559

60+
// 获取一个布尔指针,其值为true
61+
boolPointer := pointer.TruePointer()
62+
fmt.Println(reflect.TypeOf(boolPointer)) // output: *bool
63+
fmt.Println(*boolPointer) // output: true
64+
65+
// 获取一个布尔指针,其值为false
66+
boolPointer = pointer.FalsePointer()
67+
fmt.Println(reflect.TypeOf(boolPointer)) // output: *bool
68+
fmt.Println(*boolPointer) // output: false
69+
70+
// 将布尔变量转换为布尔指针
71+
boolVar := true
72+
boolPointer = pointer.ToBoolPointer(boolVar)
73+
fmt.Println(reflect.TypeOf(boolPointer)) // output: *bool
74+
fmt.Println(*boolPointer) // output: true
75+
boolVar = false
76+
boolPointer = pointer.ToBoolPointer(boolVar)
77+
fmt.Println(reflect.TypeOf(boolPointer)) // output: *bool
78+
fmt.Println(*boolPointer) // output: false
79+
80+
// 将布尔变量转换为布尔指针,如果布尔的值为nil的话则返回nil指针
81+
boolVar = true
82+
boolPointer = pointer.ToBoolPointerOrNilIfFalse(boolVar)
83+
fmt.Println(reflect.TypeOf(boolPointer)) // output: *bool
84+
fmt.Println(*boolPointer) // output: true
85+
boolVar = false
86+
boolPointer = pointer.ToBoolPointerOrNilIfFalse(boolVar)
87+
fmt.Println(reflect.TypeOf(boolPointer)) // output: *bool
88+
fmt.Println(boolPointer) // output: <nil>
89+
90+
// 读取布尔指针变量的值,如果值为nil的话则返回false
91+
boolVar = pointer.FromBoolPointer(pointer.FalsePointer())
92+
fmt.Println(boolVar)
93+
94+
// 读取布尔变量的值,如果布尔指针为nil的话则返回给定的默认值,这个默认值可以是true或者false
95+
boolPointer = nil
96+
boolVar = pointer.FromBoolPointerOrDefault(boolPointer, true)
97+
fmt.Println(boolVar) // output: true
6698
```
67-
68-
# byte
69-
70-
#
99+
71100

72101

73102

example/bool_example.go

Lines changed: 33 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,49 @@ package example
22

33
import (
44
"fmt"
5-
"go-pointer/pkg/pointer"
5+
"github.com/CC11001100/go-pointer/pkg/pointer"
6+
"reflect"
67
)
78

89
func BoolExample() {
910

1011
// 获取一个布尔指针,其值为true
1112
boolPointer := pointer.TruePointer()
12-
fmt.Println(*boolPointer)
13+
fmt.Println(reflect.TypeOf(boolPointer)) // output: *bool
14+
fmt.Println(*boolPointer) // output: true
1315

1416
// 获取一个布尔指针,其值为false
1517
boolPointer = pointer.FalsePointer()
16-
fmt.Println(*boolPointer)
18+
fmt.Println(reflect.TypeOf(boolPointer)) // output: *bool
19+
fmt.Println(*boolPointer) // output: false
1720

21+
// 将布尔变量转换为布尔指针
22+
boolVar := true
23+
boolPointer = pointer.ToBoolPointer(boolVar)
24+
fmt.Println(reflect.TypeOf(boolPointer)) // output: *bool
25+
fmt.Println(*boolPointer) // output: true
26+
boolVar = false
27+
boolPointer = pointer.ToBoolPointer(boolVar)
28+
fmt.Println(reflect.TypeOf(boolPointer)) // output: *bool
29+
fmt.Println(*boolPointer) // output: false
1830

31+
// 将布尔变量转换为布尔指针,如果布尔的值为nil的话则返回nil指针
32+
boolVar = true
33+
boolPointer = pointer.ToBoolPointerOrNilIfFalse(boolVar)
34+
fmt.Println(reflect.TypeOf(boolPointer)) // output: *bool
35+
fmt.Println(*boolPointer) // output: true
36+
boolVar = false
37+
boolPointer = pointer.ToBoolPointerOrNilIfFalse(boolVar)
38+
fmt.Println(reflect.TypeOf(boolPointer)) // output: *bool
39+
fmt.Println(boolPointer) // output: <nil>
40+
41+
// 读取布尔指针变量的值,如果值为nil的话则返回false
42+
boolVar = pointer.FromBoolPointer(pointer.FalsePointer())
43+
fmt.Println(boolVar)
44+
45+
// 读取布尔变量的值,如果布尔指针为nil的话则返回给定的默认值,这个默认值可以是true或者false
46+
boolPointer = nil
47+
boolVar = pointer.FromBoolPointerOrDefault(boolPointer, true)
48+
fmt.Println(boolVar) // output: true
1949

2050
}

example/byte_example.go

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package example
2+
3+
//func ByteExample() {
4+
//
5+
// // 获取一个布尔指针,其值为true
6+
// boolPointer := pointer.Byte()
7+
// fmt.Println(reflect.TypeOf(boolPointer)) // output: *bool
8+
// fmt.Println(*boolPointer) // output: true
9+
//
10+
// // 获取一个布尔指针,其值为false
11+
// boolPointer = pointer.FalsePointer()
12+
// fmt.Println(reflect.TypeOf(boolPointer)) // output: *bool
13+
// fmt.Println(*boolPointer) // output: false
14+
//
15+
// // 将布尔变量转换为布尔指针
16+
// boolVar := true
17+
// boolPointer = pointer.ToBoolPointer(boolVar)
18+
// fmt.Println(reflect.TypeOf(boolPointer)) // output: *bool
19+
// fmt.Println(*boolPointer) // output: true
20+
// boolVar = false
21+
// boolPointer = pointer.ToBoolPointer(boolVar)
22+
// fmt.Println(reflect.TypeOf(boolPointer)) // output: *bool
23+
// fmt.Println(*boolPointer) // output: false
24+
//
25+
// // 将布尔变量转换为布尔指针,如果布尔的值为nil的话则返回nil指针
26+
// boolVar = true
27+
// boolPointer = pointer.ToBoolPointerOrNilIfFalse(boolVar)
28+
// fmt.Println(reflect.TypeOf(boolPointer)) // output: *bool
29+
// fmt.Println(*boolPointer) // output: true
30+
// boolVar = false
31+
// boolPointer = pointer.ToBoolPointerOrNilIfFalse(boolVar)
32+
// fmt.Println(reflect.TypeOf(boolPointer)) // output: *bool
33+
// fmt.Println(boolPointer) // output: <nil>
34+
//
35+
//}

example/complex128_example.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
package example

example/complex64_example.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
package example

example/example_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@ import "testing"
44

55
func Test(t *testing.T) {
66

7-
BoolExample()
8-
7+
TimeTimeExample()
8+
99
}

example/float32_example.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
package example

example/float64_example.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
package example

example/int16_example.go

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package example
2+
3+
import (
4+
"fmt"
5+
"github.com/CC11001100/go-pointer/pkg/pointer"
6+
"reflect"
7+
)
8+
9+
// Int16Example int16与*int16类型互相转换的示例代码
10+
func Int16Example() {
11+
12+
var int16Var int16
13+
var int16Pointer *int16
14+
15+
// 将int16变量转为*int16类型的指针
16+
int16Var = 10086
17+
int16Pointer = pointer.ToInt16Pointer(int16Var)
18+
fmt.Println(reflect.TypeOf(int16Pointer)) // output: *int16
19+
fmt.Println(*int16Pointer) // output: 10086
20+
21+
// 可以在int16转换为*int16的时候把0值转为nil指针
22+
int16Var = 0
23+
int16Pointer = pointer.ToInt16PointerOrNilIfZero(int16Var)
24+
fmt.Println(int16Pointer) // output: <nil>
25+
26+
// 读取*int16指针所指向的地址的值
27+
int16Pointer = pointer.ToInt16Pointer(10010)
28+
int16Var = pointer.FromInt16Pointer(int16Pointer)
29+
fmt.Println(int16Var) // output: 10010
30+
31+
// 如果*int16为nil,则返回0
32+
int16Pointer = nil
33+
int16Var = pointer.FromInt16Pointer(int16Pointer)
34+
fmt.Println(int16Var) // output: 0
35+
36+
// 可以自定义为nil的时候的默认值
37+
int16Var = pointer.FromInt16PointerOrDefaultIfNil(int16Pointer, 100)
38+
fmt.Println(int16Var) // output: 100
39+
40+
}

0 commit comments

Comments
 (0)