在Golang里面没有类的概念,它是使用结构体的东西来替代这个类的概念。
//张老太养了2只猫猫:一只名字叫小白,今年3岁,白色。还有一只叫小花,今年8岁,花色。
请编写一个程序,当用户输入小猫的名字时,就显示该猫的名字,1/年龄,颜色。如果用户输入的小猫名错误,则显示张老太没有这只猫猫。
//1.使用变量的处理 这里会出现一个问题,如果猫多了会出现定义的很多变量,如果定义了猫其他的特性这些变量都需要变化。这样下去代码就无法写了。即使找到了这只猫也无法通过一个变量来将所有的属性和特征取出来。
如果使用数组来解决,那么不仅仅猫猫的属性类型不一样,那么数组就解决不了。
func main() {var cat1Name string = "小白"var cat1Age int = 3var cat1Color string = "白色"var cat2Name string = "小花"var cat2Age int = 100var cat2Color string = "花色"
}
var catNames [2]string = [...]string{"小白","小花"}var catAges [2]int = [...]int{1,2}var catColors [2]string = [...]string{"白色","花色"}
可以看到使用变量还是数组也好,这都不利于数据的管理。因为猫猫有很多的属性,这些属性又属于同一个对象,这样分散不好管理数据。
同时还有猫猫有一些行为,比如可以写代码,这些都是无法体现出来的。这些数据有了,但是还是希望操作这些数据。或者还有一些方法想给猫猫使用这些怎么办?
1)使用变量或者数组来解决养猫的问题,不利于数据的管理和维护。因为名字,年龄,颜色都是属于一只猫,但是这里是分开保存。
2)如果我们希望对一只猫的属性(名字、年龄,颜色)造行操作(绑定方法),也不好处理。
有多个属性属于一个变量这种情况,用单独变量和数组不好处理,就引出了结构体。