2013-05-12 73 views
2

在某些语言中,单引号用于定义字符,双引号用于定义字符串。在其他语言中,单引号和双引号都用于定义字符串。区分字符串声明与char声明

使用单引号和双引号定义字符串的语言是否经常提供明确的方式来定义单个字符?

有没有任何影响不能具体定义一个字符?自动优化单个字符串为字符是可以接受的吗?

+2

你正在寻找一些古怪而古老的决定背后的原因。 – 2013-05-12 08:29:49

+1

根据语言的不同,“单个字符”可能与“字符串”完全不同。所以在这些方面,这是没有道理的。在他们确实具有相同类型的语言中,没有优化。 – Mat 2013-05-12 08:35:08

+0

公平的警告。我很好奇,如果过去几十年的决定今天仍然如此,挑战它们的含义是什么。 – George 2013-05-12 08:36:27

回答

1

如果语言具有字符数据类型,那么通常有一种方法来定义字符文字。

在VB.NET例如,字符文字看上去象一个字符串,但与C后缀:

Dim space As Char = " "C 

(即撇号不是用于VB.NET字符文字的原因,例如C#,它们被用作REM命令的缩写)。

在Javascript中,例如没有字符数据类型,所以没有办法指定字符文字。您可以将字符表示为单个字符字符串,也可以表示为数字字符代码。

自动优化单个字符串到一个字符不可能是一个好的解决方案,除非您还在需要时自动转换回字符串。然而,在实践中,这将与在需要时自动将单个字符串转换为字符相同。