Go Integers: Difference between revisions

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


A single byte can be converted to string as follows:
A single byte can be converted to string as follows:
<pre>
<syntaxhighlight lang='go'>
var b byte = 65 // decimal ASCII for "A"
var b byte = 65 // decimal ASCII for "A"
str := string(b) // str is "A"
str := string(b) // str is "A"
</pre>
</syntaxhighlight>


The following expression converts a string to a [[Go Slices|slice]] of bytes:
The following expression converts a string to a [[Go Slices|slice]] of bytes:


<pre>
<syntaxhighlight lang='go'>
bytes := []byte("test")
bytes := []byte("test")
</pre>
</syntaxhighlight>


The following expression converts a slice of bytes to string:
The following expression converts a slice of bytes to string:


<pre>
<syntaxhighlight lang='go'>
str := string(bytes)
str := string(bytes)
</pre>
</syntaxhighlight>


Also see:
Also see:

Revision as of 00:41, 19 August 2023

Internal

Overview

Integers are designated by the following pre-declared type identifiers.

In most cases, we simply declare an int (signed integer) or uint (unsigned integer) and leave it to the compiler to allocate the right type of integer, depending on the underlying architecture. If we want to get specific, we can use:

  • Unsigned integers represented on the specified number of bits: uint8 (or byte), uint16, uint32 (or rune), uint64.
  • Signed integers, represented on the specified number of bits: int8, int16, int32, int64.
  • Machine-dependent integers: uint, int and uintptr. int, for example, can be 4 bytes or 8 bytes long, depending on the underlying architecture.

When a regular integer is needed in the program, int should be the default.

The uninitialized value is 0.

byte

byte is unsigned int represented on a byte (uint8).

Indexing operator [] applied to strings return bytes.

Conversion between bytes and strings

A single byte can be converted to string as follows:

var b byte = 65 // decimal ASCII for "A"
str := string(b) // str is "A"

The following expression converts a string to a slice of bytes:

bytes := []byte("test")

The following expression converts a slice of bytes to string:

str := string(bytes)

Also see:

Conversion between Types

Integers as characters

i := 'A'
j := i + 1
fmt.Printf("%c %d\n", j, j)
Printf()

Integers to Strings

i := 0
string(48 + i)