跳转到内容

空字串:修订间差异

维基百科,自由的百科全书
删除的内容 添加的内容
Zao留言 | 贡献
无编辑摘要
 
(未显示11个用户的13个中间版本)
第1行: 第1行:
{{NoteTA
在[[計算機科學]]或[[形式語言]]中,'''空字串'''是指在[[字母表 (计算机科学)|字母表]]Σ上,其長度為 0 的那唯一字串,以''ε''或''λ''來標記。
|G1 = IT
}}
在[[計算機科學]]或[[形式語言]]中,'''空字串'''是指在[[字母表 (计算机科学)|字母表]]Σ上,其長度為 0 的那唯一字串,以''ε''或''λ''來標記。


在[[物件導向程式語言]]中,空字串共非空參照。一個字串型別的空參照並未指向一個字串物件,而對其操作則會導致錯誤。空字串則可以使用字串運算。
在[[物件導向程式語言]]中,空字串共非空參照。一個字串型別的空參照並未指向一個字串物件,而對其操作則會導致錯誤。空字串則可以使用字串運算。
第8行: 第11行:
*<math>\lambda \, + s = s + \lambda \, = s</math>。在[[串接]]運算之下,空字串是一個在Σ上之[[自由么半群|自由-{么}-半群]]的[[單位元素]]。
*<math>\lambda \, + s = s + \lambda \, = s</math>。在[[串接]]運算之下,空字串是一個在Σ上之[[自由么半群|自由-{么}-半群]]的[[單位元素]]。
*<math>{ \lambda \, }^R = \lambda \,</math>。空字串的'''[[反元素]]'''為空字串。
*<math>{ \lambda \, }^R = \lambda \,</math>。空字串的'''[[反元素]]'''為空字串。
* 空字串位於[[字典順序]]中的最優先。<ref>[http://cs.fit.edu/~ryan/cse1002/lectures/lexicographic.pdf CSE1002 Lecture Notes - Lexicographic]</ref>
* 空字串位於[[字典順序]]中的最優先。<ref>{{Cite web |url=http://cs.fit.edu/~ryan/cse1002/lectures/lexicographic.pdf |title=CSE1002 Lecture Notes - Lexicographic |accessdate=2010-04-22 |archive-date=2009-12-29 |archive-url=https://web.archive.org/web/20091229212044/http://cs.fit.edu/~ryan/cse1002/lectures/lexicographic.pdf |dead-url=no }}</ref>


[[程式語言]]可能會維持這些特性,但保留特殊實作方式的可能{{Citation needed|date=March 2010}}。
[[程式語言]]可能會維持這些特性,但保留特殊實作方式的可能{{Citation needed|date=March 2010}}。


== 表示方式 ==
== 表示方式 ==
空字串通常使用和其它一般字串相同的方式來表示。在使用'''結束字符'''的語言(如C字串或純文字的一行)中,則單統地將結束字符放在第一個位置。
空字串通常使用和其它一般字串相同的方式來表示。在使用'''結束字符'''的語言如C字串或純文字的一行中,則單統地將結束字符放在第一個位置。
{| class="wikitable"
{| class="wikitable"
|-
|-
第20行: 第23行:
|-
|-
| [[C語言]], [[C++]]
| [[C語言]], [[C++]]
| <source lang="c">""</source> <source lang="c">{'\0'}</source>
| <syntaxhighlight lang="c" inline>""</syntaxhighlight><br /><syntaxhighlight lang="c" inline>{'\0'}</syntaxhighlight>
|-
|-
| [[C++]]
| [[C++]]
| <source lang="c">std::string()</source>
| <syntaxhighlight lang="c" inline>std::string()</syntaxhighlight>
|-
|-
| [[Objective-C]]
| [[Objective-C]]
| <source lang="objc">@""</source>
| <syntaxhighlight lang="objc" inline>@""</syntaxhighlight>
|-
|-
| [[Perl]]
| [[Perl]]
| <source lang="perl">""</source> <source lang="perl">''</source> <source lang="perl">qw()</source>
| <syntaxhighlight lang="perl" inline>""</syntaxhighlight><br /><syntaxhighlight lang="perl" inline>''</syntaxhighlight><br /><syntaxhighlight lang="perl" inline>qw()</syntaxhighlight>
|-
|-
| [[Python]]
| [[Python]]
| <source lang="python">""</source> <source lang="python">''</source> <source lang="python">""""""</source> <source lang="python">str()</source>
| <syntaxhighlight lang="python" inline>""</syntaxhighlight><br /><syntaxhighlight lang="python" inline>''</syntaxhighlight><br /><syntaxhighlight lang="python" inline>""""""</syntaxhighlight><br /><syntaxhighlight lang="python" inline>str()</syntaxhighlight>
|-
|-
| [[C#]]
| [[C♯|C#]]
| <source lang="csharp">""</source> <source lang="csharp">string.Empty</source>
| <syntaxhighlight lang="csharp" inline>""</syntaxhighlight><br /><syntaxhighlight lang="csharp" inline>string.Empty</syntaxhighlight>
|-
|-
| [[VB.NET|Visual Basic .NET]]
| [[VB.NET|Visual Basic .NET]]
| <source lang="vb">""</source> <source lang="vb">String.Empty</source>
| <syntaxhighlight lang="vb" inline>""</syntaxhighlight><br /><syntaxhighlight lang="vb" inline>String.Empty</syntaxhighlight>
|-
|-
| [[PHP]]
| [[PHP]]
| <source lang="php">""</source> <source lang="php">''</source>
| <syntaxhighlight lang="php" inline>""</syntaxhighlight><br /><syntaxhighlight lang="php" inline>''</syntaxhighlight>
|-
|-
| [[Java]]
| [[Java]]
| <source lang="java">""</source>
| <syntaxhighlight lang="java" inline>""</syntaxhighlight>
|-
|-
| [[Javascript]]
| [[Javascript]]
| <source lang="javascript">''</source> <source lang="javascript">""</source>
| <syntaxhighlight lang="javascript" inline>""</syntaxhighlight><br /><syntaxhighlight lang="javascript" inline>''</syntaxhighlight>
|-
|-
| [[Haskell]]
| [[Haskell]]
| <source lang="text">""</source>
| <syntaxhighlight lang="text" inline>""</syntaxhighlight>
|-
|-
| [[OCaml]]
| [[OCaml]]
| <source lang="ocaml">""</source> <source lang="ocaml">String.make 0 '-'</source>
| <syntaxhighlight lang="ocaml" inline>""</syntaxhighlight><br /><syntaxhighlight lang="ocaml" inline>String.make 0 '-'</syntaxhighlight>
|-
|-
| [[Delphi]]
| [[Delphi]]
| <source lang="delphi">''</source>
| <syntaxhighlight lang="delphi" inline>''</syntaxhighlight>
|-
|-
|}
|}
第63行: 第66行:
<references/>
<references/>



{{logic-stub}}
{{Nulls|type=程式語言}}


[[Category:形式语言|K]]
[[Category:形式语言|K]]
[[Category:零]]
[[Category:零]]
[[Category:字符串]]

[[bs:Prazni niz]]
[[de:Leeres Wort]]
[[en:Empty string]]
[[es:Cadena vacía]]
[[he:מחרוזת ריקה (תכנות)]]
[[hr:Prazni niz znakova]]
[[ja:空文字列]]
[[nl:Lege string]]
[[pt:Cadeia vazia]]
[[ru:Пустая строка]]
[[simple:Empty string]]
[[th:สายอักขระว่าง]]

2021年8月11日 (三) 10:32的最新版本

計算機科學形式語言中,空字串是指在字母表Σ上,其長度為 0 的那唯一字串,以ελ來標記。

物件導向程式語言中,空字串共非空參照。一個字串型別的空參照並未指向一個字串物件,而對其操作則會導致錯誤。空字串則可以使用字串運算。

特性

[编辑]

在形式語言中,空字串有以下特性:

  • 字串長度為 0 。
  • 。在串接運算之下,空字串是一個在Σ上之自由么半群單位元素
  • 。空字串的反元素為空字串。
  • 空字串位於字典順序中的最優先。[1]

程式語言可能會維持這些特性,但保留特殊實作方式的可能[來源請求]

表示方式

[编辑]

空字串通常使用和其它一般字串相同的方式來表示。在使用結束字符的語言(如C字串或純文字的一行)中,則單統地將結束字符放在第一個位置。

程式語言 λ 表示法
C語言, C++ ""
{'\0'}
C++ std::string()
Objective-C @""
Perl ""
''
qw()
Python ""
''
""""""
str()
C# ""
string.Empty
Visual Basic .NET ""
String.Empty
PHP ""
''
Java ""
Javascript ""
''
Haskell ""
OCaml ""
String.make 0 '-'
Delphi ''

參考

[编辑]
  1. ^ CSE1002 Lecture Notes - Lexicographic (PDF). [2010-04-22]. (原始内容存档 (PDF)于2009-12-29).