Objective-C文件为什么使用“.m”扩展名?

235

自从我开始学习Objective-C和Cocoa,我就一直在想为什么它们选择了扩展名.m作为实现文件的后缀 - 它是否意味着什么,还是只是一个随机字母?

自从我开始学习Objective-C和Cocoa,我一直在思考他们为什么选择了扩展名为“.m”的实现文件——这是否有特别的意义,还是纯粹随意的字母组合呢?

17
这是用于实的。 - dreamlax
2
我猜这可能困扰了其他人,所以他们进行了一些研究,找到了关于 .m 扩展名背后含义的相互矛盾的证据。最终,它代表消息。完整阅读请访问:http://pempek.net/blog/2013/11/30/objective-c-file-extension/&utm_medium=email&utm_source=iOS%2BDev%2BWeekly - John Riselvato
".m"文件是实现文件,正如你所说。知道苹果喜欢在所有东西前面加上“i”,很容易看出“implementation”去掉了“i”后变成了“mplementation”。然后他们只是使用了“mplementation”的第一个字母作为文件扩展名:“m”。 - Daniel
3个回答

527

今天,大多数人会将它们称为“方法文件”,但

“.m扩展名最初代表“消息”(messages),当Objective-C首次引入时,这是指Objective-C的一个核心特性[...]”

(摘自Mark Dalrymple和Scott Knaster的书“Learn Objective-C on the Mac”,第9页)

编辑:为了满足好奇心,我给Objective-C的发明人Brad Cox发了一封电子邮件,他回答说:

“因为.o和.c已经被占用了。就这么简单。”

这是电子邮件的视觉证明:

Visual Proof


10
Brad Cox,已逝世。https://en.wikipedia.org/wiki/Brad_Cox - ThomasW
.oc呢?肯定不一定要是一个字母,对吧? - unobatbayar
似乎已经被占用了。 - unobatbayar

10

这里的缩写"M"代表"方法"。根据comp.lang.objective-C FAQ(Objective-C常见问题解答):

Objective-C源代码的组织通常类似于C或C++源代码,其中声明和对象接口放置在以.h扩展名命名的头文件中,定义和对象实现则放在以.m(缩写为方法)扩展名命名的文件中。


5

.m文件包含(m)ethods。可能的原因是什么?


4
m文件可能包含大量的注释!想一想 :) - NeverStopLearning

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接