The problem of "errors" package code in go

package main

import (
    "fmt"
)

type test interface {
    Error1() string
}

func New(name string) test {
    return &student{name}
}

type student struct {
    name string
}

func (s *student) Error1() string {
    fmt.Println("Error1Error") // 21
    return s.name
}

func main() {
    s := New("mike")
    fmt.Println("s = ", s)
    // fmt.Println("s = ", s.Error1()) // Error
}

my test found that line 21 will print only if you change two places of Error1 in the code to the word Error, and any other words need to be manually called to the implemented method. Why? how does go do it

Mar.17,2021

found that p.fmtString (v.Error (), verb)

) was called in the handleMethods method in the "fmt" package.
MySQL Query : SELECT * FROM `codeshelper`.`v9_news` WHERE status=99 AND catid='6' ORDER BY rand() LIMIT 5
MySQL Error : Disk full (/tmp/#sql-temptable-64f5-1e53b88-43d32.MAI); waiting for someone to free some space... (errno: 28 "No space left on device")
MySQL Errno : 1021
Message : Disk full (/tmp/#sql-temptable-64f5-1e53b88-43d32.MAI); waiting for someone to free some space... (errno: 28 "No space left on device")
Need Help?