我在Delphi中做了很多项目,它使用不区分大小写的语言Pascal,我想知道区分大小写语言的优点是什么。
Jason argues认为“不区分大小写引起了很多歧义”。我不同意。如果您意识到该语言不区分大小写,则您知道WHILE
与while
的含义相同,即使您从未编写过前者。变量和函数也一样;骆驼套管很好,但是第一个字母还是资本还是没有?那些名称以下划线开头的函数呢?如果不区分大小写的语言没问题:_fooBar
将与_FooBar
一样好。那么贾森所指的模糊性在哪里呢?是的,你可以用不同的方式写一个变量,但意思是明确的! FooBar
== foobar
!
在Capitalization is the difference between "I had to help my uncle Jack off a horse.." and "I had to help my uncle jack off a horse.."
的同一个帖子Delnan says中。非常聪明 :-)。但是,与专业案例敏感相比,这是一个反对意见:您是否会因为单一的大写错误而接受您的代码变得混乱?同样,在不区分大小写的语言中,如果Jack
是一个人,那么jack
也是如此。
问题:是否有人在区分大小写的语言中使用此功能,您可以通过不同的大写来定义两个不同的变量或函数?因为这是我能看到的唯一优势。当然,你会说,我用驼峰套管写了变量名,而常量全是大写。但IMO他们是不相容的; userName
作为变量是有道理的,但USERNAME
作为常量不是。
(我意识到许多程序员使用区分大小写的语言,所以我准备迎接不受欢迎的接待: - ))
修改
这个问题的触发点是Lynda.com的“Flash CS3 Professional中的ActionScript 3.0”培训视频,其中Todd Perkins花费了一半的时间来强调大写: - )
答案 0 :(得分:5)
是的,我绝对一直在C#中使用它:
private readonly string name;
public string Name { get { return name; } }
我倾向于使用区分大小写的语言,并没有真正看到它们的缺点 - 除了其他任何东西,它们强制套管的一致性。
我认为这真的是个人喜好。
答案 1 :(得分:3)
我个人喜欢干净整洁的代码。如果您的语言不区分大小写,如果每个人都不遵守规则,则可能会变得混乱。
private String myName = "Shawn";
if(myname.equals("Shawn"){
MYNAME = myname + "Vader";
}
System.out.println("His name is " + MyName);
即使在区分大小写的语言中,我们也会花费大量时间确保一切都是一致的,例如运行分析工具来强制执行字段和格式规则以及最终方法参数的命名约定。
所以对我来说这是一个整合的问题。