2020-10-05 22:18:02 +00:00
|
|
|
# isnil
|
|
|
|
|
|
|
|
`nil` check that works for interfaces too. Example code and benchmarks.
|
2017-07-25 13:50:44 +00:00
|
|
|
|
|
|
|
Benchmarks:
|
|
|
|
```
|
2020-10-05 22:18:02 +00:00
|
|
|
#
|
|
|
|
# x != nil
|
|
|
|
#
|
|
|
|
|
|
|
|
# nil pointer
|
|
|
|
BenchmarkEqNilBasic
|
|
|
|
BenchmarkEqNilBasic-8 1000000000 0.247 ns/op
|
|
|
|
|
|
|
|
# nil interface
|
|
|
|
BenchmarkEqNilInterface
|
|
|
|
BenchmarkEqNilInterface-8 1000000000 0.247 ns/op
|
|
|
|
|
|
|
|
|
|
|
|
#
|
|
|
|
# IsNil(x)
|
|
|
|
#
|
|
|
|
|
|
|
|
# nil pointer
|
|
|
|
BenchmarkIsNilBasic
|
|
|
|
BenchmarkIsNilBasic-8 274689241 4.37 ns/op
|
|
|
|
|
|
|
|
# (*struct{})(nil)
|
|
|
|
BenchmarkIsNilInterface
|
|
|
|
BenchmarkIsNilInterface-8 277561260 4.26 ns/op
|
|
|
|
|
|
|
|
# nil
|
|
|
|
BenchmarkIsNilNil
|
|
|
|
BenchmarkIsNilNil-8 803470719 1.48 ns/op
|
2017-07-25 13:50:44 +00:00
|
|
|
```
|