如何在Delphi中定义Empty Char

Zei*_*ina 13 delphi string char

只是为了好奇,

为什么在Delphi中,如果我们通过以下方式定义一个空char:

a:Char;
a:='';
Run Code Online (Sandbox Code Playgroud)

我们得到一个错误:不兼容的类型:'Char'和'string'

但是,如果我们放置

a:='a';
Run Code Online (Sandbox Code Playgroud)

没事的?

是否有必要通过定义一个空字符:a:=#0

And*_*and 25

char是单个(即恰好一个)字符.所以'a','∫'和'⌬'都可以,但不是'ab'(两个字符的字符串),'Hello World!' (十二个字符的字符串)或''(零字符串).

但是,NULL字符(#0)是一个像任何其他字符一样的字符.

此外,字符数据类型实现为一个单词(在现代版本的Delphi中),即两个字节.如果将所有这些值0,1,...,2 ^ 16 - 1用于真实字符,那么您将如何在世界中代表您的"空字符"?

  • +'代表''(零个字符).它让我信服!! (2认同)
  • 我一直不喜欢Delphi对`Char`和`String`文字使用单引号.它可以使编码更容易,但它也会造成这样的混乱.我主要使用C++,它使用单引号作为字符,双引号作为字符串.对我来说更明确,更直观. (2认同)

Dav*_*nan 17

没有空的东西char.A char必须有价值.它是一种序数类型,一种简单的值类型.就像一个整数一样,总是有一个值,一个也是char.

该值#0不是空的char,它是值为0的字符,通常称为NUL.

  • 在Pascal那是`序数'类型. (2认同)