1. f()
    2. }
    3. type S1 struct{}
    4. func (s S1) f() {}
    5. func (s *S2) f() {}
    6. s1Val := S1{}
    7. s1Ptr := &S1{}
    8. s2Val := S2{}
    9. var i F
    10. i = s1Val
    11. i = s1Ptr
    12. i = s2Ptr
    13. // 无法编译通过, 因为 s2Val 是一个值类型变量, 并且 f 方法不具有值类型接收器。