在动态类型语言中,您不必关心列表是什么类型,而只是列表。但是,在静态类型的语言中,您确实在意列表的类型,因为类型是“ A的列表”,其中“
A”是某种类型。也就是说,a
list A与的类型不同
list B。
因此,当您谈到泛型时,调用类型
A -> B为列表中每个项目的某个函数时,
foreach意味着该列表必须为
listA。但是…如果使用泛型,则不必声明是什么
A,只需稍后再填写即可。因此,您可以建立合同,据此给定a
list C和函数
A -> B,
A=== C以便对其进行编译。这大大减少了样板。
在Go中,由于缺少泛型并且无法声明这种类型协定,因此您必须编写一个对int列表,double列表,string列表等操作的函数。您不能仅定义以“通用”方式进行操作。



