Go Strings: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 15: Line 15:


=String Literals=
=String Literals=
Go has [[#Interpreted_String_Literals|interpreted string literals]] and [[#Raw_String_Literals|raw string literals]].
A string literal is a string [[Go_Language#Constant|constant]] produced by concatenating characters. Go has two kind of string literals: [[#Interpreted_String_Literals|interpreted string literals]] and [[#Raw_String_Literals|raw string literals]].


==<span id='Interpreted_String_Literal'></span>Interpreted String Literals==
==<span id='Interpreted_String_Literal'></span>Interpreted String Literals==

Revision as of 01:47, 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 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)

TO DEPLETE

Internal

Overview

The pre-declared String type identifier is string. String values are (possibly empty) sequences of bytes. String values are immutable.

Uninitialized variable value: TO check: "" (empty string).

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"

String Equality

String equality is tested with the == operator:

var s string = "something"

if s == "something" then {
    ...
}

String Operators and Functions

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 Length

len()

Conversion of a byte to string

Conversion between bytes and strings

Reading with a string with a Reader

TODO

strings.NewReader()

See Go_Package_strings#NewReader.28.29