首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有必要进行通用编程?

是否有必要进行通用编程?
EN

Stack Overflow用户
提问于 2014-01-25 07:02:34
回答 1查看 298关注 0票数 0

我正在阅读这本书,它正在进行静态输入,在阅读了这一章之后,我理解为:

  • OOP中的静态类型被定义为显式地声明对象是一个实例的类,因此它是预定的(在编译时,在运行时之前,即Foo var)。
  • 与此相反的是泛型编程,其中对象的实际id尚未确定(即id var)。
  • 要记住的是,静态输入从来都不是必需的(从书中直接看到),它只会提高可读性,并通过显示对象可以和不能做什么以及它能“看到”什么来简化调试过程。
  • 但是,泛型编程有时对于数组之类的东西是必要的,在那里您可能需要.,而这正是我感到困惑的地方。真的需要吗?

我知道在Java中您可以强制执行数组中包含的对象类型,比如:ArrayList<Double>,但是在objects中,我已经对此做了最少的研究,没有这样的方法,因此,所有的NSArray在编译时都包含id

如果这个特性(奇怪地称为泛型,即使它是静态类型而不是泛型类型)在Objective中是不可用的,这是否意味着泛型编程有时是必要的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-25 07:33:11

是的,当您需要编写需要在编译时不知道类型的情况下对多个类型进行操作的东西时,泛型输入是必要的。

虽然objective本身不包含泛型,但Ids和void*基本上是一样的。您可以编写接受void*或Id的方法,并对其进行一些处理。在调用该方法之前,您将对要操作的对象执行显式强制转换。

编辑:例如,如果您想要编写一个方法来生成任何类型对象的浅表副本,您会做什么?你必须做一些像copy(void* src,void* dest, int size)这样的事情。没有泛型就无法做到这一点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21347728

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档