Ich habe jetzt ein Problem für Stunden zu beheben versucht, sehr neu erlangErlang Druck hex statt integer
lists:sublist([6,9,15,24,39,6,96],7,1).
Ich will die „100“ anstelle von „d“
drucken, was Ich mache ich hier falsch?
Ich habe jetzt ein Problem für Stunden zu beheben versucht, sehr neu erlangErlang Druck hex statt integer
lists:sublist([6,9,15,24,39,6,96],7,1).
Ich will die „100“ anstelle von „d“
drucken, was Ich mache ich hier falsch?
Die Shell wird versuchen, Zeichenfolgen als Zeichenfolgen zu drucken, wann immer es zulässig wäre. Das bedeutet, dass Listen von ganzen Zahlen, die alles sein gültiges Zeichen passieren wird als Zeichen gedruckt werden, und Listen, die anderen Dinge enthalten als Listen gedruckt werden:
1> [65,66,67].
"ABC"
2> [3,65,66,67].
[3,65,66,67]
Aber Hinweis, dass ich eigentlich keine Ausgabe nennen Funktionen. Das war nur die bequeme Operation der Shell, um implizit zu reproduzieren, was auch immer ein zurückgegebener Wert war, damit Sie als Programmierer ihn überprüfen können.
Wenn ich will, eine Ausgabefunktion explizit nennen ich ein Format-String verwendet werden soll, die die Art des Wertes angibt interpoliert werden:
3> io:format("This is a list: ~tw~n", [List]).
This is a list: [65,66,67]
ok
4> io:format("This is a list rendered as an implied string: ~tp~n", [List]).
This is a list rendered as an implied string: "ABC"
ok
5> io:format("This is a string: ~ts~n", [List]).
This is a string: ABC
ok
Hinweis des zusätzliche Atom ok
nach jedem Druck. Dies liegt daran, dass der Rückgabewert von io:format/2
ok
ist. Wir erhalten also die explizite Ausgabe von format/2
und sehen dann ihren Rückgabewert.
Das IO-Modul doc Seite hat die gritty Details: http://erlang.org/doc/man/io.html#format-1
Zurück zu Ihrem Beispiel ...
6> lists:sublist([6,9,15,24,39,6,96],7,1).
"`"
7> io:format("~tw~n", [lists:sublist([6,9,15,24,39,6,96],7,1)]).
[96]
ok
Nachtrag
Es gibt eine Einstellung shell:strings/1
genannt, die die Schale erzählt um die Formatierung der Zeichenfolge ein- und auszuschalten:
1> [65,66,67].
"ABC"
2> shell:strings(false).
true
3> [65,66,67].
[65,66,67]
4> <<65,66,67>>.
<<65,66,67>>
5> shell:strings(true).
false
6> <<65,66,67>>.
<<"ABC">>
Aber ich verwirren sie nicht mit dieser Einstellung immer mehr für ein paar Gründe:
io
oder io_lib
Module, und die Entwicklung von Gewohnheiten rund um Formatzeichenfolgen ist viel nützlicher als Sorgen über Komfort Ausgabe von der Shell.Ich denke, kann einige Informationen über die Funktion 'shell: strings/1' hinzufügen. –
@Atomic_alarm Danke für die Erinnerung. Ich habe eine Notiz über 'shell: strings/1' hinzugefügt. Die Hauptsache, die ich ausdrücken wollte, war die allgemeine Methode der Verwendung von Formatzeichenfolgen, da sie für immer universell verwendbar ist, während Shell Convenience-Werte im Allgemeinen nur gelegentlich verwendet werden, wenn mit einer Idee gespielt wird. – zxq9
Das ist nicht Hex, es ist ASCII. – tadman
Der aktuelle Wert ist nicht ASCII "d".Sie haben einen Backtick im Moment (char Wert 96) ... – zxq9