mirror of
https://github.com/Pungyeon/clean-go-article.git
synced 2024-11-23 06:04:05 +00:00
commit
f18fd5f884
|
@ -311,7 +311,7 @@ func getReference(extension string) (string, bool) {
|
|||
if !ok {
|
||||
return EmptyItem, false
|
||||
}
|
||||
return refIface.(string)
|
||||
return refIface.(string), true
|
||||
}
|
||||
|
||||
func getItemByReference(reference string) (Item, error) {
|
||||
|
@ -503,6 +503,7 @@ func getVal(num int) (string, error) {
|
|||
if val == "" {
|
||||
return NewValue() // pretend function
|
||||
}
|
||||
return val, err
|
||||
}
|
||||
|
||||
func main() {
|
||||
|
@ -832,8 +833,8 @@ func (cache *KVCache) Add(key, value string) {
|
|||
This code is absolutely fine. However, the danger is that our `App` can be initialised incorrectly, without initialising the `Cache` property within. Should the following code be invoked, our application will panic:
|
||||
|
||||
```go
|
||||
app := App{}
|
||||
app.Cache.Add("panic", "now")
|
||||
app := App{}
|
||||
app.Cache.Add("panic", "now")
|
||||
```
|
||||
|
||||
The `Cache` property has never been initialised and is therefore a `nil` pointer. Thus, invoking the `Add` method like we did here will cause a panic, with the following message:
|
||||
|
|
Loading…
Reference in a new issue