Go Strings: Difference between revisions
Line 64: | Line 64: | ||
=Operators= | =Operators= | ||
==<span id='Indexing_Operator'></span>Indexing Operator <tt>[]</tt>== | |||
Indexing operator <tt>[[Go Concepts - Operators#.5B.5D|[]]]</tt> returns a <tt>[[Go Integers#byte|byte]]</tt> (<tt>uint8</tt>) | |||
Strings are indexed starting with 0. If the index is out of bounds, the runtime generates a run-time panic: | |||
<pre> | |||
panic: runtime error: index out of range | |||
</pre> | |||
==<span id='Concatenation_Operator'></span>Concatenation Operator <tt>+</tt>== | |||
[[Go Concepts - Operators#.2B|Concatenation operator +]] concatenates two strings together. Since Go is strong typed, using the concatenation operation between a string and an int, for example, won't work, the int won't be automatically converted to string, Java style. | |||
<pre> | |||
"a" + "b" | |||
</pre> | |||
=String Manipulation and Processing in Go= | =String Manipulation and Processing in Go= | ||
Revision as of 02:14, 20 August 2023
External
Internal
Overview
The main "use case" for strings is to hold characters made for printing, things you see, and read.
In Go, strings are sequence of bytes that represent characters, encoded using the character encoding standard Unicode, and, by default, the UTF-8 character encoding scheme. Go refers to Unicode code points as runes. For the rune
type, also see integral types.
Strings are immutable.
String Variable Declaration
The pre-declared type identifier for strings is string
.
var s string // string type declaration without initialization
s = "example 1" // initialization after declaration
var s2 string = "example 2" // variable initialization in declaration
var s3 = "example 3" // variable initialization with type inference
s4 := "example 4" // short variable declaration
String Literals
A string literal is a string constant produced by concatenating characters. Go has two kind of string literals: interpreted string literals and raw string literals.
Interpreted String Literals
An interpreted string literal is represented in Go code as a sequence of characters enclosed in double quotes. Each character is a byte, a rune, an UTF-8 code point. Interpreted strings allow escaping (\n or \t).
s := "something\nsomething else"
println(s)
Raw String Literals
Raw string literals are sequences of characters enclosed in backquotes (backticks) `
. All characters between the pair of matching backticks is taken literally, back slashes have no special meaning and new lines can appear. Carriage return characters inside raw string literals are discarded.
s := `This
is an \n \t
example of
raw string literal`
println(s)
will produce:
This
is an \n \t
example of
raw string literal
Empty String
emptyString1 := ""
emptyString2 := ``
Operators
Indexing Operator []
Indexing operator [] returns a byte (uint8)
Strings are indexed starting with 0. If the index is out of bounds, the runtime generates a run-time panic:
panic: runtime error: index out of range
Concatenation Operator +
Concatenation operator + concatenates two strings together. Since Go is strong typed, using the concatenation operation between a string and an int, for example, won't work, the int won't be automatically converted to string, Java style.
"a" + "b"
String Manipulation and Processing in Go
TO DEPLETE
Overview
Uninitialized variable value: TO check: ""
(empty string).
String Equality
String equality is tested with the == operator:
var s string = "something" if s == "something" then { ... }
String Operators and Functions
String Length
Conversion of a byte to string
Reading with a string with a Reader
TODO
strings.NewReader()
See Go_Package_strings#NewReader.28.29