Skip to content

泛型的问题 #174

@MarisaKirisame

Description

@MarisaKirisame

Rust中,也称为泛型,通俗的讲,泛型就是好比坦克的炮管,既可以发射普通弹药,也可以发射制导炮弹(导弹),也可以发射贫铀穿甲弹,甚至发射子母弹,大家都不想为每一种炮弹都在坦克上分别安装一个专用炮管,即使生产商愿意,炮手也不愿意,累死人啊。所以在编程开发中,我们也需要这样“通用的炮管”,这个“通用的炮管”就是泛型。 泛型主要目的是为程序员提供了编程的便利,减少代码的臃肿,同时极大丰富了语言本身的表达能力。

这是多态,而不仅仅是generic,太广泛。换句话说,Subtyping可以做到这种效果。
考虑到OO程序员的数量,只怕会跟class,object,virtual function混在一起。
问题的核心是,根据泛型的定义:对Type进行抽象,不可能讲的时候不涉及Type。
解法有三:
1是用现实世界的集合/属性定义类型,比如【普通弹药】,【炮弹】,【子母弹】等-然而这个例子依然不好,因为这些东西都为弹药的Subtype-在这可以试图通过用更抽象的例子-比如【一推】的概念。不过这个问题会或多或少的存在-因为所有类型都是top的subtype(换句话说很多语言里面所有类型继承于Object)
2是用这个例子讲多态,然后在这说一下泛型是多态的一种,以后在说其他种类的多态的时候也可以重用这个例子
3是放弃这个例子。

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions