English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Основной учебник Golang

Управляющие предложения Golang

Функции и методы Golang

Структуры Golang

Срезы и массивы Golang

Строки (String) Golang

Указатели Golang

Интерфейсы Golang

Конкурентоспособность Golang

Исключения Golang (Error)

Другие элементы Golang

Типы данных языка Go

Тип данных определяет эффективныйПеременные GoТипы данных, которые можно сохранять. В языке Go типы данных делятся на следующие четыре категории:

  1. Основные типы:Числа, строки и логические значения относятся к этой категории.

  2. Типы агрегации:Массивы и структуры относятся к этой категории.

  3. Тип данных:指针,切片,map集合,函数和Channel属于此类别。

  4. Интерфейсы, массивы, карты, функции и каналы относятся к этой категории.

Здесь мы будем обсуждать типы интерфейсов в языках программирования GoОсновные типы данных. ВОсновные типы данныхБолее того, они делятся на три подкатегории,分别是:

  • Числа

  • Булевы значения

  • Строки

Типы чисел

В языках программирования Go числа делятся натриПодкатегории:

  • Целые числа:В языках программирования Go целые числа с знаками и без знаков могут использоваться в четырех различных размерах, как показано в таблице ниже. С знаками int представляется как int, а без знаков - как uint.

    Тип данныхОписание
    int88-битное целое число с знаками
    int1616-битное целое число с знаками
    int3232-битное целое число с знаками
    int6464-битное целое число с знаками
    uint88-битное беззнаковое целое число
    uint1616-битное беззнаковое целое число
    uint3232-битное беззнаковое целое число
    uint6464-битное беззнаковое целое число
    intin и uint имеют одинаковую ширину, как 32, так и 64 бита.
    uintin и uint имеют одинаковую ширину, как 32, так и 64 бита.
    runeЭто синоним int32 и также обозначает Unicode кодовую точку.
    byteЭто синоним int8.
    uintptrЭто тип беззнакового целого числа. Его ширина не определена, но он может容纳 все биты значения指针.
    //Использование целых чисел 
    package main  
    import "fmt"
             
    func main() { 
          
        //Использование 8-битного целого числа без знака
        var X uint8 = 225 
        fmt.Println(X + 1, X) 
          
        //Использование 16-битного целого числа с знаками
        var Y int16 = 32767 
        fmt.Println(Y + 2, Y - 2)  
    }

    Вывод:

    226 225
    -32767 32765
  • Числа с плавающей запятой:В языках программирования Go числа с плавающей запятой делятся на2Как показано в таблице ниже:

    Тип данныхОписание
    float3232-битное浮точное число по стандарту IEEE 754
    float6464-битное浮точное число по стандарту IEEE 754
    //Использование чисел с плавающей запятой 
    package main  
    import "fmt"
             
    func main() { 
        a := 20.45 
        b := 34.89 
          
        //Сброс двух чисел с плавающей запятой
        c := b - a 
          
        //Отображение результата 
        fmt.Printf("Результат: %f", c) 
          
        //Отображение типа переменной c
        fmt.Printf("\nc типа: %T", c)   
    }

    Вывод:

    Результат: 14.440000
    Тип c: float64
  • Комплексные числа:Комплексные числа делятся на две части, как показано в таблице ниже. float32 и float64 также являются частью этих комплексных чисел. Внутренние функции создают комплексное число из его мнимой и действительной частей, а функции мнимой и действительной части извлекают эти части.

    Тип данныхОписание
    complex64Включает в себя комплексное число с действительным и мнимым компонентами float32.
    complex128Комплексные числа, содержащие float64 в качестве действительной и мнимой частей.
    // Использование комплексных чисел 
    package main 
    import "fmt"
      
    func main() { 
          
       var a complex128 = complex(6, 2) 
       var b complex64 = complex(9, 2) 
       fmt.Println(a) 
       fmt.Println(b) 
         
       // Показать типы 
      fmt.Printf("Тип a: %T, тип b: %T", a, b) 
    }

    Вывод:

    (6+2i)
    (9+2i)
    Тип a: complex128, тип b: complex64

Тип данных булева

Тип данных булева представляет собой true или false. Значения типа булева не преобразуются в другие типы данных ни явно, ни неявно.

// Использование булевых значений
package main
import "fmt"
func main() {
    // Переменные
    str1 := "w3codebox"
    str2 := "w3codebox"
    str3 := "w3codebox"
    result1 := str1 == str2
    result2 := str1 == str3
    // Вывести результат
    fmt.Println(result1)
    fmt.Println(result2)
    // Показать типы result1 и result2
    fmt.Printf("Тип result1: %T, тип result2: %T", result1, result2)
}

Вывод:

true
true
Тип result1: bool, тип result2: bool

Тип данных строки

Тип данных строки представляет собой последовательность кодовых точек Unicode. Иначе говоря, можно сказать, что строка является неизменяемой последовательностью байтов, что означает, что после создания строки вы не можете изменить её. Строка может содержать любые данные, включая нулевые байты, представленные в читаемом людьми формате.

// Использование строки
package main 
import "fmt"
  
func main() { 
      
    // Переменная для хранения строки str
   str := "w3codebox"
     
   // Показать длину строки
   fmt.Printf("Длина строки: %d", len(str)) 
     
   // Показать строку 
   fmt.Printf("\nСтрока: %s", str) 
     
   // Показать тип переменной str
   fmt.Printf("\nТип строки str: %T", str) 
}

Вывод:

Длина строки: 5
Строка: w3codebox
Тип str: string