2013-05-12 72 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中,例如沒有字符數據類型,所以沒有辦法指定字符文字。您可以將字符表示爲單個字符字符串,也可以表示爲數字字符代碼。

自動優化單個字符串到一個字符不可能是一個好的解決方案,除非您還在需要時自動轉換回字符串。然而,在實踐中,這將與在需要時自動將單個字符串轉換爲字符相同。