gram z typu twierdzenia za pomocą następującego kodu obojętne, i mam błąd:Golang: nie można wpisać przełącznik na wartość różną od interfejsu
cannot type switch on non-interface value
Czy ktoś wie co to znaczy?
package main
import "fmt"
import "strconv"
type Stringer interface {
String() string
}
type Number struct {
v int
}
func (number *Number) String() string {
return strconv.Itoa(number.v)
}
func main() {
n := &Number{1}
switch v := n.(type) {
case Stringer:
fmt.Println("Stringer:", v)
default:
fmt.Println("Unknown")
}
}
http://play.golang.org/p/Ti4FG0m1mc
, ale jaki byłby sens tworzenia asercji typu na znanym typie? – newacct
@newacct Tak, w kodzie produkcyjnym na pewno nie wpisujesz asercji, jeśli typ jest już znany. Celem tego ćwiczenia jest zrozumienie asercji typu. – Mingyu