Go Strings: Difference between revisions
Line 48: | Line 48: | ||
Indexing operator <tt>[[Go Concepts - Operators#.5B.5D|[]]]</tt>: <tt>s[i]</tt> returns a <tt>[[Go Integers#byte|byte]]</tt> (<tt>uint8</tt>) | Indexing operator <tt>[[Go Concepts - Operators#.5B.5D|[]]]</tt>: <tt>s[i]</tt> returns a <tt>[[Go Integers#byte|byte]]</tt> (<tt>uint8</tt>) | ||
If the index is out of bounds, the runtime generates a run-time panic: | |||
<pre> | |||
panic: runtime error: index out of range | |||
</pre> | |||
=Conversion of a <tt>byte</tt> to <tt>string</tt>= | =Conversion of a <tt>byte</tt> to <tt>string</tt>= |
Revision as of 01:38, 23 March 2016
External
- String types in the language specification https://golang.org/ref/spec#String_types
- String literals in the language specification https://golang.org/ref/spec#String_literals
Internal
Overview
The pre-declared String type identifier is string. String values are (possibly empty) sequences of bytes. String values are immutable.
String Literals
A string literal is a string constant obtained from concatenating a sequence of characters.
Raw String Literals
Raw string literals are sequences of characters enclosed by backquotes (backticks) `. Any other character is taken literally, back slashes have no special meaning and new lines can appear. Carriage return characters inside raw string literals are discarded. The following code:
var sl = `Example \n \t ... "something"` fmt.Println(sl);
will produce:
Example \n \t ... "something"
Interpreted String Literals
Interpreted string literals are character sequences between double quotes, as in "example".
Interpreted strings allow escaping (\n or \t).
String Operators and Functions
Indexing Operator
Indexing operator []: s[i] returns a byte (uint8)
If the index is out of bounds, the runtime generates a run-time panic:
panic: runtime error: index out of range