以下代码能通过编译吗?为什么?

package main

import (
    "fmt"
)

type People interface {
    Speak(string) string
}

type Student struct{}

func (stu *Student) Speak(think string) (talk string) {
    if think == "love" {
        talk = "You are a good boy"
    } else {
        talk = "hi"
    }
    return
}

func main() {
    var peo People = Student{}
    think := "love"
    fmt.Println(peo.Speak(think))
}

不能,应为是*Student 实现了People接口的方法。 而现在是Student 赋值给People接口类型。因此编译错误 需要修改为

var peo People = &Student{}