在看开源软件代码的时候,经常会看到在内存分配失败时,会打印“Not enough memory.”这样一条消息,然而每次看到它时,我都非常疑惑:“not”是表示否定,“no”才表示没有的啊?为啥不写成“No enough memory.”,而是“Not enough memory.”呢?
今天再次看到这个句子时,终于去查了查。发现我还是太天真了,基础语法知识严重不过关。下面整理一些我收集的相关资料与说明。
No
-
用于回答一个“yes/no”的问题;
- No, I can't.
-
放在没有冠词的名词前;
- I have no money.
-
可以放在带形容词修饰的名词的前面,但不能是 any, much, many, enough 中的一个。
- The company had no worthy rivals in the industry.
Not
-
用于否定一个动词;
- I do not like you.
-
放在有冠词的名词前;
- The virus is not the source of the outbreak.
-
可以放在 any, much, many, enough 前面;
- There is not much budget left for another trial.
另外: No 和 Not 绝不会出现在同一个句子中。
参考: