Ir lenguaje de los tipos de datos básicos

El básico de los tipos de datos Capítulo V de la lengua Go

entero

tipo descripción
uint8 Enteros sin signo de 8 bits (0 a 255)
uint16 Enteros sin signo de 16 bits (0 a 65535)
uint32 Enteros sin signo de 32 bits (0 a 4294967295)
uint64 entero sin signo de 64 bits (0-18446744073709551615)
INT8 Firmado entero de 8 bits (-128 a 127)
Int16 Entero de 16 bits (-32768-32.767)
int32 Entero de 32 bits (-2147483.648 mil hasta 2147.483647 millones)
Int64 Firmado entero de 64 bits (-9223372036854775808-9223372036854775807)
  • uint8Es decir, sabemos el bytetipo, int16el correspondiente lenguaje C shorttipo, int64que corresponde al lenguaje C longTipo

Entero especial

tipo descripción
uint El sistema operativo es un 32-bit uint32del sistema operativo, 64 bits esuint64
En t El sistema operativo es un 32-bit int32del sistema operativo, 64 bits esint64
UIntPtr unsigned int, para almacenar un puntero
  • sintaxis literal de Digital

    • package main
      
      import "fmt"
      
      func main(){
          // 十进制
          var a int = 10
          fmt.Printf("%d \n", a)  // 10
          fmt.Printf("%b \n", a)  // 1010  占位符%b表示二进制
      
          // 八进制  以0开头
          var b int = 077
          fmt.Printf("%o \n", b)  // 77
      
          // 十六进制  以0x开头
          var c int = 0xff
          fmt.Printf("%x \n", c)  // ff
          fmt.Printf("%X \n", c)  // FF
      }

flotador

  • soportes idioma ir dos números de punto flotante: float32yfloat64

    • package main
      import (
              "fmt"
              "math"
      )
      func main() {
              fmt.Println(math.MaxFloat32)
              fmt.Println(math.MaxFloat64)
      }
      
      >>>
      3.4028234663852886e+38
      1.7976931348623157e+308

plural

  • complex64 y complex128

  • var c1 complex64
    c1 = 1 + 2i
    var c2 complex128
    c2 = 2 + 3i
    fmt.Println(c1)
    fmt.Println(c2)
  • Complex64 real y parte imaginaria es de 32 bits, complex128 la parte real e imaginaria 64.

valor booleano

  • sólo los datos de Boole true(真)y false(假)dos valores.

observaciones:

  1. Boolean variables de valor por defecto es false.
  2. Ir idioma no está permitido en el elenco entero de Boole.
    • Eso no está en pitón 0 significa que los falsos, 1 para Verdadero
  3. operaciones booleanas no pueden participar en valor no se pueden convertir a otros tipos.

cadena

  • cuerda

  • Valor de la cadena 双引号 ""contenido o acentos abiertos

    • s1 := "hello"
      s2 := "你好"
  • Escapar de cuerdas

    • Escaparon con una barra invertida: \ r \ n, etc.

    • // 比如打印一个Windows平台下的一个文件路径
      package main
      import (
          "fmt"
      )
      func main() {
          fmt.Println("str := \"c:\\Code\\lesson1\\go.exe\"")
      }

cadenas multilínea

  • cadenas multilínea, debe utilizar el carácter anti-presupuesto

    • s1 := `第一行
      第二行
      第三行
      \n
      \t
      `
      fmt.Println(s1)

operación de cadena comunes

método introducción
len (str) busque longitud
+ O fmt.Sprintf La concatenación de cadenas
strings.Split división
strings.contains Determinar si incluir
strings.HasPrefix, strings.HasSuffix Análisis de prefijo / sufijo
strings.Index (), strings.LastIndex () Posición de la subcadena que ocurre
strings.Join (una cadena [], cadena sep) unirse a las operaciones, utilizando el símbolo de empalme

byte y el tipo runa

  • La composición de cada elemento de cadena llamado "personajes" se puede obtener por la que atraviesa una cadena de caracteres o un solo elemento de adquisición. Carácter ( ') envuelta entre comillas simples

    • var a := '中'
      var b := 'x'
  • Ir caracteres del idioma de los dos siguientes:

    • Tipo de byte representa ASCII码un personaje.
      • Tipo de byte es en realidad un uint8tipo de
    • runeEscribir, lo que representa una UTF-8字符
      • runeEn realidad, es un tipo int32.
  • func main() {
      s := "hello沙河"
      for i := 0; i < len(s); i++ { //byte
          fmt.Printf("%c", s[i])
      }
      fmt.Println()
      for _, r := range s { //rune
          fmt.Printf("%c", r)
      }
    }
    
    >>>
    helloæ²æ²³
    hello沙河

Modificar la cadena de

  • Para modificar la necesidad cadena para convertir en primer lugar en []runeo []bytedespués de la finalización de la conversión en string. De cualquier conversión volverá a asignar memoria y copiar la matriz de bytes.

  • func main() {
      s1 := "big"
      // 强制类型转换
      byteS1 := []byte(s1)
      byteS1[0] = 'p'
      fmt.Println(string(byteS1))
    
      s2 := "白萝卜"
      runeS2 := []rune(s2)
      runeS2[0] = '红'
      fmt.Println(string(runeS2))
    }
    
    >>>
    pig
    红萝卜

tipo de conversión

  • idioma ir solamente arroja, sin conversión implícita. Esta sintaxis se utiliza sólo cuando la conversión mutua entre los dos tipos de apoyo.

  • func sqrtDemo() {
      var a, b = 3, 4
      var c int
      // math.Sqrt()接收的参数是float64类型,需要强制转换
      c = int(math.Sqrt(float64(a*a + b*b)))
      fmt.Println(c)
    }
    
    // 将a*a + b*b的结果强制转换成float64类型

Supongo que te gusta

Origin www.cnblogs.com/zlx960303/p/12456812.html
Recomendado
Clasificación