2010-10-15 132 views
2

我一直在使用不区分大小写的语言Pascal在Delphi中执行一些项目,而且我很想知道区分大小写的语言的优点。
Jason argues即“不区分大小写引入了很多不明确性”。我不同意。如果你意识到语言不区分大小写,那么即使你从不写前者,你也知道WHILEwhile意思相同。变量和函数一样;骆驼套管很不错,但是第一个字母也是大写还是不是?那么名字以下划线开头的函数呢?在不区分大小写的语言中没有问题:_fooBar_FooBar一样好。那么杰森提到的歧义在哪里呢?是的,你可以用不同的方式编写变量,但含义是明确的! FooBar == foobar区分大小写的语言优于区分大小写的区别?

在同一个线程Delnan saysCapitalization 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.."。非常聪明 :-)。但是相对于专业级大小写敏感性来说:您会接受由于单个大写错误而导致您的代码出现故障吗?同样,在不区分大小写的语言中,如果Jack是一个人,那么jack也是。

问题:是否有人在区分大小写的语言中使用此功能,您可以通过不同的大写定义两个不同的变量或函数?因为这是我能看到的唯一优势。当然,你会说,我用骆驼套管写出变量名称,并且常量全部大写。但海事组织是不相容的; userName作为一个变量是有意义的,但USERNAME作为一个常数没有。

(我知道很多程序员使用大小写敏感的语言,所以我为不受欢迎的接待:-)准备)

编辑
对这个问题的导火索是Lynda.com的“的ActionScript 3.0 Flash CS3 Professional的”培训视频,其中托德帕金斯大部分时间强调市值的一半:-)

+4

我想你应该在http://Programmers.stackexchange.com上提出这个问题。 – Jonas 2010-10-15 13:09:50

+1

我认为你应该不**在Programmers.SE上询问这个问题,因为它已经在[问](http://programmers.stackexchange.com/questions/9965)那里了。 – 2010-10-15 13:11:57

+0

@Pavel,是不是被问到那里(而不是关闭)一个好的迹象,说明它*实际上是正确的场所? – 2010-10-15 13:17:17

回答

5

是的,我绝对使用这一切在C#时间:

private readonly string name; 
public string Name { get { return name; } } 

我一直倾向于使用区分大小写的语言,并没有真正看到它们的缺点 - 除了别的之外,它们的套管的一致性。

我认为这确实是个人喜好的事情。

+0

我的所有职业都使用了区分大小写的语言,我有时希望C#不是!哦,那永远不会发生! – 2010-10-15 13:12:35

+1

更多的是心理上的东西,而不是我认为的偏好。当我第一次从德尔福来到C#时,我被这种编码风格吓坏了。现在我一直使用它,并且我很好。我也适用于不区分大小写的德尔福。 – 2010-10-15 13:26:55

3

我个人喜欢整齐整齐的代码。如果你的语言不区分大小写,如果大家不遵守规则,它可能会变得混乱。

private String myName = "Shawn"; 

    if(myname.equals("Shawn"){ 
    MYNAME = myname + "Vader"; 
    } 

    System.out.println("His name is " + MyName); 

即使我们花了大量的时间确保一切是一致的,就像运行分析工具来执行领域和格式规则和最终方法参数的命名约定的情况下,敏感的语言。

所以对我来说这是一个符合性的问题。