Package pointer contains helper routines for simplifying the creation of optional fields of basic type.
With the advent of generics in go 1.18, using this library in your code is likely to be unwarranted, I recommend that you make a small local copy of this library, for example:
Put the code below in the file: internal/pointer/pointer.go
and use it at
your own pleasure.
package pointer
// Of is a helper routine that allocates a new any value
// to store v and returns a pointer to it.
func Of[Value any](v Value) *Value {
return &v
}
go get github.com/xorcare/pointer
Starting with Go 18+, you can use the Of
method to get pointers to values of any types.
Examples of using the library are presented on godoc.org and in the source library code.
Question | Source |
---|---|
How to set bool pointer in a struct literal or variable? | var _ *bool = pointer.Bool(true) |
How to set byte pointer in a struct literal or variable? | var _ *byte = pointer.Byte(1) |
How to set complex64 pointer in a struct literal or variable? | var _ *complex64 = pointer.Complex64(1.1) |
How to set complex128 pointer in a struct literal or variable? | var _ *complex128 = pointer.Complex128(1.1) |
How to set float32 pointer in a struct literal or variable? | var _ *float32 = pointer.Float32(1.1) |
How to set float64 pointer in a struct literal or variable? | var _ *float64 = pointer.Float64(1.1) |
How to set int pointer in a struct literal or variable? | var _ *int = pointer.Int(1) |
How to set int8 pointer in a struct literal or variable? | var _ *int8 = pointer.Int8(8) |
How to set int16 pointer in a struct literal or variable? | var _ *int16 = pointer.Int16(16) |
How to set int32 pointer in a struct literal or variable? | var _ *int32 = pointer.Int32(32) |
How to set int64 pointer in a struct literal or variable? | var _ *int64 = pointer.Int64(64) |
How to set rune pointer in a struct literal or variable? | var _ *rune = pointer.Rune(1) |
How to set string pointer in a struct literal or variable? | var _ *string = pointer.String("ptr") |
How to set uint pointer in a struct literal or variable? | var _ *uint = pointer.Uint(1) |
How to set uint8 pointer in a struct literal or variable? | var _ *uint8 = pointer.Uint8(8) |
How to set uint16 pointer in a struct literal or variable? | var _ *uint16 = pointer.Uint16(16) |
How to set uint32 pointer in a struct literal or variable? | var _ *uint32 = pointer.Uint32(32) |
How to set uint64 pointer in a struct literal or variable? | var _ *uint64 = pointer.Uint64(64) |
How to set time.Time pointer in a struct literal or variable? | var _ *time.Time = pointer.Time(time.Now()) |
How to set time.Duration pointer in a struct literal or variable? | var _ *time.Duration = pointer.Duration(time.Hour) |
© 2019-2020,2022 Vasiliy Vasilyuk [email protected]
Released under the BSD 3-Clause License.