今天有人问我他们的源代码有什么问题。这很明显。“在 if 语句中使用双等号代替单等号。嗯,我认为......” 我记得有些语言实际上使用单等号进行比较。由于我有时会忘记或混淆我使用的几种语言的语法细节,所以我走到我的笔记本电脑前尝试了一个快速实验。
尝试“快速”实验会花费一些时间,并且会中断流程(尽管这种做法可能对记忆有好处。)你有什么技巧可以让你牢记多个语法(和其他)细节语言?
(如今,这同样适用于许多类似 wiki 的标记!)
今天有人问我他们的源代码有什么问题。这很明显。“在 if 语句中使用双等号代替单等号。嗯,我认为......” 我记得有些语言实际上使用单等号进行比较。由于我有时会忘记或混淆我使用的几种语言的语法细节,所以我走到我的笔记本电脑前尝试了一个快速实验。
尝试“快速”实验会花费一些时间,并且会中断流程(尽管这种做法可能对记忆有好处。)你有什么技巧可以让你牢记多个语法(和其他)细节语言?
(如今,这同样适用于许多类似 wiki 的标记!)
对我来说,最难的部分不是语法——通常你在查看正在处理的代码时会进入模式。真正困难的部分是记住语言的库,这样你就不会一遍又一遍地发明轮子。现在,如果只有人们会组织他们的帮助文件,那么在图书馆中搜索特定的东西就很容易了。
就我而言,这只是经验。我认为,一旦你用一种语言编码足够长的时间,你的大脑似乎就能够用它进行语言上下文切换。
可以绘制红色和黄色曲线的 IDE 可以提供帮助,直到您开发出这种心理肌肉记忆。
XCode(对于 Cocoa/ObjectiveC)令人讨厌的事情之一是,在编译之前你不会得到所说的曲线。(与您获得实时曲线的 Eclipse/Java 不同)。
事实上,在 SO 我建议不要忘记if (a = b)
在 Java 中避免,有人提醒我只有当 a 和 b 是布尔值时它才是合法的!当然,该建议适用于 C、C++、JavaScript 和许多其他类似 C 的语言。
同样,我最近才意识到var v
JavaScript 中只有函数级范围,而不是大括号级范围。
不知何故,这就是语法相似但行为不同的陷阱。
对于轶事,Lua 邮件列表中的一些人抱怨说这种语言不像 C 语言,它具有简洁而熟悉的花括号、+= 和 ++、位运算符。他们说这会损害该语言的采用,因为人们更熟悉类似 C 的语法。
这是无意义的,Basic 曾经(现在仍然)以其冗长的语法被广泛使用。Pascal 也是如此(Delphià。很多人发现 Lua 语法可读且易于学习,非常适合那些不熟悉编程的人(例如游戏 AI 专家)。
此外,明确地说,Lua 旨在与 C/C++ 程序集成并使用 C[++] 函数进行扩展。人们说完全不同的语法有助于思维方式的转变。