以函数名称开头的句子?[关闭]


42

有时在键入与区分大小写的编程语言有关的内容时,我最终会以函数名开头一个句子。现在,英语规则规定句子中的第一个单词必须大写。函数名称是小写的。如果您想知道我会说什么导致第一个单词成为函数名,请考虑以下示例:

您的恐惧实现已损坏。fread需要返回已读取的字节数。

我知道我可以将fread的第二个实例更改为It,但我想知道处理此错误的最佳方法,而不仅仅是重写句子。我应该大写功能名称吗?我想听到“重写句子”作为答案的唯一方法是,如果以函数名开头的句子违反了我不知道的某些英语规则。编辑:我真的很感谢大家的这些答案。他们已经改变并改善了我对该问题的见解。我从中学到了很多。我没有想到这些简单但好的解决方案,这让我感到非常惊讶。

我确实认为我对交替句子的立场太过苛刻,现在我意识到,由于这些好答案,整体更改句子似乎是处理这些情况的最佳选择,无论是在函数后面加上括号还是在函数之前说出函数函数名称,如果可用,请使用格式设置函数名称。


1
@gnat我不是在问用什么来命名,我是在问如何用函数名开始一个句子。
user3462295'9

13
数学上有一个相关的约定,即应避免以可变名称或公式开头的句子。尽管有这样一个事实,我们确实有一个印刷约定,变量和公式以斜体显示以使其与文本区分开。人们会避免编写“让X是2的幂 X是正的,所以......”通常的解决办法是改写或添加一些填料一句话:“现在X为正”或“我们有X为正”或某种东西。
Nate Eldredge 2014年

9
编程语言中的标识符应被视为外来词,并且不应受相同的英语规则约束。
Rufflewind 2014年

1
在English.SE上有一些非常活跃的程序员(tchrist ...没那么多Eric Lippert)-但这取决于您想要的答案的类型。我们在以程序员为中心的网站上以程序员的身份编写此代码。如果您对技术写作,期刊指南和适当的英语句子结构的形式更感兴趣,则不妨重新考虑您的目标专家受众。

2
这个问题似乎是题外话,因为它是英语和用法,并且我们有一个完整的StackExchange网站。事实上,至少有4点 类似 的问题 存在。此外,不同的答案可能是同样有效的根据出现的地方写入等
迦勒

Answers:


87

在排版中,这通常是通过使用不同的呈现方式(无论它是否是句子的开头)来处理的,以表明吸引眼球的不仅是句子中的一个单词,而且是一个特殊的实体。

您的fread实现已损坏。fread需要返回读取了多少字节。

根据文档的正式程度,它可以采用相同的方法。无论如何,这样做可以消除您发现的问题,因此您可能希望仅出于该原因使用它。

在纯文本世界中(如在注释和其他答案中的一些指出),在函数名称后附加括号会有所帮助,但是由于我们还需要引用不带括号的实体,因此其价值有限。一般而言,在纯文本世界中,除非采用约定将文本用方括号和星号括起来,否则在纯文本世界中别无选择,只能通过改组句子来回避问题。


是的,我确实明白您的意思,它确实仍然很尴尬,但不太尴尬。但是我知道,情感并不总是与语法和写作规则保持一致。我不确定是否有更好的方法来解决此问题,因此除非有人提出更好的建议,否则我将接受您的回答。
user3462295'9

25
我经常用斜体表示这样的事情-IMO应该始终保持区分大小写的术语的大小写,无论它们在句子中的位置如何。fread不是一个字;它是代表实体的符号。它不受语法限制。
Ant P

4
而且...如果必须处理纯文本,该怎么办?像是小型的.txt帮助文件还是纯文本电子邮件?我建议将这种情况也包括在内。
Ellesedil 2014年

2
@Ellesedil在这种情况下,我通常会在其后缀()(...)表示它是一个函数。但这并不总是有效的,特别是在处理变量等时。然后,我要做的是用`(勾号)包裹名称以表示其代码。
科尔·约翰逊

4
@Ellesedil我已经习惯了使用markdown语法来指示代码元素,即使在纯文本上下文(例如注释)中也是如此。这是我写普通英语时唯一需要使用反引号的符号。
敏锐2014年

53

如果绝对需要每个句子都加一个大写字母,那么只要在句子的开头fread加上“ fread函数”即可。


21

如果您没有印刷方法来区分(按照另一个答案),也许即使您这样做,也可以使用parens来表明您在谈论某个函数,这可能会很有用:

您的fread()实现已损坏。fread()需要返回已读取的字节数。

这有助于“解释”为什么没有在第二句的开头大写,也有助于(在第一个句子)理解为什么专有名词(函数的名称)不大写有两种。既然(作为专有名词)可以说应该如此。

(“可以争论”,因为我们可以争论fread()是通用名词还是专有名词)。

总体而言,使用括号可以帮助读者的大脑了解奇怪单词出现的原因及其含义。


5
使用括号也有助于减少文本冗余。代替“函数fread”,您可以说“ fread()”。如果您要突出显示变量名和函数之类的区别,这也很有用。
Paul92

3
我认为括号只会增加更多的混乱。fread()可能是通话说明。或者它可能是指没有参数的重载函数。
kapex 2014年

4
@kapep通常,在引用代码的文档中,无论实际函数本身是否具有任何参数,func_name()都将其读取为“具有名称的函数func_name”。
埃里克·芬

3
@EricFinn以我的经验,它通常指的是无参数函数,但它确实取决于语言及其约定。例如,官方Java注释指南不鼓励使用括号:“当引用[方法的特定形式]时,请使用括号和参数类型。[...]但是,如果同时引用方法的两种形式,请省略。共括号它是误导包括空括号,因为这将意味着方法”的一种特殊形式oracle.com/technetwork/java/javase/documentation/...
KAPEX

3
尽管添加视觉线索当然是个好主意(最好是专用字体或其他高亮显示),但我同意kapep的观点,即添加空括号确实是一个有问题的选择,因为我所知道的每种语言都f()意味着与有所不同f。为什么不用一些合适的字符包围名称,例如markdown样式的“ fread”(这是我在VCS提交消息中倾向于这样做的)?或简单地(恐惧)。当然,任何这样的事情都应该一致地完成,而不仅仅是句子开头的功能。
左右左转

10

您可以从描述开始句子:

函数fread[…]

方法fread[…]

财产breadColor[…]


@扎克:奥巴马总统。
Marc van Leeuwen 2014年

@MarcvanLeeuwen标题是一种特殊情况。(还有“伊丽莎白女王”,“罗杰斯先生”。)我的头顶上没有适当的分析方法,但直觉上我认为它们被认为是名称的一部分,而不是类别标签。
zwol 2014年

8

您可以将其与出版物中的内联数学进行比较。您很少会看到以变量或其他内联数学开头的句子。

因此,我得出结论,您应该在句子的开头避免使用函数名。

也许这个问题提供了更多细节:以希腊字母开头的句子(变量)可以吗?


3
+1。在《数学证明》(Chartrand等,2000)中,第0章是数学写作良好建议的真实来源,“ 使用符号 ” 下的第一条规则是“切勿以符号开头句子”。(该示例以等式开头的句子;作者建议以“ ___等式”开头。)尽管并非所有数学写作建议都一定适用于编写源代码,但我认为这确实可以做到这一点。
ruakh 2014年

1
我不确定我是否同意类推。诸如$ x $之类的符号对于方程是瞬态的,因此将其引用为具有全局含义是很奇怪的。如果像$ \ pi $这样的符号开头一个句子,我作为读者会感到很舒服。
djechlin 2014年

1
@djechlin我不确定以符号开头的句子是否暗示它具有全局含义,或者实际上与此无关。
Kyle Strand

@KyleStrand很高兴知道您为什么永远不应该以符号开头的句子。“ $ \ pi $ is ...” v。“数学常数$ \ pi $ is ...”-选择。
djechlin 2014年

1
@djechlin:一个原因是,如果前一个句子以数学结尾,则下一个句子开头的数学可能看起来像是同一公式的一部分,中间有一个点。(这甚至是逗号问题。)另一个问题是,由于变量名通常是小写字母,因此读者的视线会丢失寻找大写字母以查找下一个句子开头的视觉提示。
Nate Eldredge 2014年

3

其他人链接的fread(3)的Linux 手册页是四个常见解决方案的一个很好的例子。

  1. 以“ The function foo”或“ The foo function”开头。“函数fread需要返回...”
  2. 根据您的编程语言社区所使用的约定,用其他字符标记函数名称。对于C,是一对空括号,因此“ fread()需要返回...”
  3. 使用印刷术(粗体,固定宽度字符或斜体)突出显示函数名称,例如:fread需要返回...”
  4. 在使用的系统上man,如果您的函数有手册页,请在括号中参阅手册的章节。因此,“ fread(3)需要返回...”

黑客将立即识别所有这四种方法,您应该能够选择一种与您的家庭风格或个人声音相匹配的方法。

如您所说,您不能依靠排版突出显示函数名称。Markdown的语法旨在使可读的文档即使在Markdown解释器不可用的情况下也是如此,因此,您的函数名一定要用一对反引号引起来。(我猜这是选项2和3的组合。)

选项2因编程语言而异。例如,Ruby和Smalltalk文档经常在实例方法名称前添加一个哈希,例如#fread。同时,Lispers可能更喜欢函数名称是裸露的,但是会理解您是否编写骨架函数调用,例如(fread ...)(fread)。冲洗并重复记录的所有语言。


我喜欢你的回答。这样做确实使编写函数看起来更好。
user3462295 2014年

2

我只想回答给出的具体示例:

您的恐惧实现已损坏。fread需要返回已读取的字节数。

只需用分号替换第一个句号(句点):

您的恐惧实现已损坏;fread需要返回已读取的字节数。


3
没有!这会使它成为句式或逗号剪接。语法很差。分号就可以了。
Martin McCallion 2014年

因此,使用逗号并不总是有效;但是为什么要用逗号呢?
reinierpost 2014年

这不是逗号。这是一个分号;正确使用分号。
RubberDuck

1
我个人在这里用冒号代替分号(尽管用分号也可以读)。
Marc van Leeuwen 2014年

0

我知道已经回答过了,接受的答案还不错,但是我只是想澄清一下。

在专有的英语语法中,底线是这样的:有时专有名词的名称不是以大写字母开头的,并且在大多数情况下,它们的某些点都是附属于不被大写的“普通”专有名词。大写。在这种情况下-当然可以包括大多数C降序语言的函数名- 即使在句子开头,您也绝对不能将其大写。实际上,这样做是不好的英语语法和拼写。实际上,这与为什么正确拼写Sony游戏机“ PlayStation”而不是“ Playstation”的原理相同。

在其他情况下,不应将专有名词默认为大写,但在句子开头使用(但应该是)专有名词时也可以。语言疯子的名称就是一个例子。C语言降序的功能不是。 myFunc()和在这种语言中MyFunc()完全不同的两件事,以单词“ MyFunc()”开头的句子仅指后者,而不指前者。但是在VB.NET中,这是一个灰色区域,因为这两个函数在该语言中将是同一事物,尽管函数名在某种程度上也会保留用户指定的大小写方案。

同样,即使在这种情况下,英语规则是一成不变的,但它们通常会使这种规则变得有些朦胧。在设计英语时并没有考虑到这种事情,因此对于其他类似事情,还有即兴创作的空间。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.