// 不推荐的方式
var _s string = F()
func F() string { return "A" }
// 推荐方式,由于 F 已经明确了返回一个字符串类型,因此我们没有必要显式指定...值对象只可以使用值接收器方法集
指针对象可以使用 值接收器方法集 + 指针接收器方法集
接口的匹配(或者叫实现), 类型实现了接口的所有方法叫匹配;具体的讲,要么是类型的值方法集匹配接口,要么是指针方法集匹配接口...具体的匹配分两种:
值方法集和接口匹配: 给接口变量赋值的不管是值还是指针对象,都ok,因为都包含值方法集....指针方法集和接口匹配: 只能将指针对象赋值给接口变量,因为只有指针方法集和接口匹配....如果将值对象赋值给接口变量,会在编译期报错(会触发接口合理性检查机制)
为啥 i = s2Val 会报错,因为值方法集和接口不匹配,必须要指针方法集才匹配.