Can anyone explain why the if statements behave differently in these two cases? It does not make sense to me.
package main
import (
"crypto/ecdsa"
"crypto/ed25519"
"fmt"
)
func main() {
var publicKey interface{}
publicKey = (ed25519.PublicKey)(nil)
switch k := publicKey.(type) {
case *ecdsa.PublicKey, ed25519.PublicKey:
if k == nil {
fmt.Println("It wont be printed")
}
default:
}
switch k := publicKey.(type) {
case ed25519.PublicKey:
if k == nil {
fmt.Println("It will be printed")
}
default:
}
}