2016-04-04 1 views
0

Ich bin neu bei Erlang, ich frage mich, ob es eine Möglichkeit gibt, ein Sonderzeichen wie # an den Ausgang zu drucken ohne '', möchte ich # drucken, ist der entsprechende Code:Drucken eines Sonderzeichens in Erlang

aber die Ausgabe sieht wie folgt aus:

Antwort

2

In Erlang wird ein einfaches Anführungszeichen verwendet, um ein Atom zu bezeichnen. So wird '#' ein Atom anstelle von Sonderzeichen.

Möglicherweise müssen Sie den Wert mit $# berücksichtigen, der ein # Zeichen darstellen würde oder "#" würde eine Zeichenfolge darstellen (Zeichenfolge ist eine Liste von Zeichen in Erlang). In diesem Fall würde {false, $#}{false, 35} (Ascii-Wert von $ #) ergeben. Wenn Sie das Zeichen drucken möchten, müssen Sie io:format verwenden.

1> io:format("~c~n",[$#]). 
# 
ok 

Wenn Sie String (Liste von Zeichen) verwenden, dann:

2> io:format("~s~n",["#"]). 
# 
ok 

Wo ok den Rückgabewert io ist: Format.

0

Mit dem Beispiel, das Sie geben, drucken Sie nichts, was Sie zeigen, ist was die Shell automatisch ausgibt: das Ergebnis der letzten Anweisung. Wenn Sie etwas mit einem bestimmten Format drucken möchten, müssen Sie eine io-Funktion aufrufen:

1> io:format("~p~n",["#"]). % the pretty print format will show you are printing a string 
"#" 
ok 
2> io:format("~s~n",["#"]). % the string format is used to print strings as text 
# 
ok 
3> io:format("~c~n",[$#]). % the character format is used to print a charater as text 
# 
ok 
4> io:format("~p~n",[{{false,$#}}]). % note that a character is an integer in erlang. 
{{false,35}} 
ok 
5> io:format("~p~n",[{{false,'#'}}]). % '#' is an atom, not an integer, it cannot be print as # without ' 
             % because it doesn't start by a lower case character, and also 
             % because # has a special meaning in erlang syntax 
{{false,'#'}} 
ok 
6> io:format("~p~n",[{{false,'a#'}}]). 
{{false,'a#'}} 
ok 
7> io:format("~p~n",[{{false,'ab'}}]). 
{{false,ab}} 
ok 
8> io:format("~p~n",[{{false,a#}}]). 
* 1: syntax error before: '}' 
8> 

Beachten Sie, dass jedes Mal, wenn die Schale das Ergebnis der letzten Anweisung drucken: io: Format/2 kehrt ok