Loading

Go笔记

Go

声明变量

有四种主要声明方式:

var(声明变量), const(声明常量), type(声明类型) ,func(声明函数)。
    
var m = 100 

m := 200 // 此处声明局部变量m

切片的定义:var 变量名 []类型,比如 var str []string  var arr []int。


切片的定义

package main

import "fmt"

func main() {
   //1.声明切片
   var s1 []int
   if s1 == nil {
      fmt.Println("是空")
   } else {
      fmt.Println("不是空")
   }
   // 2.:=
   s2 := []int{}
   // 3.make()
   var s3 []int = make([]int, 0)
   fmt.Println(s1, s2, s3)
   // 4.初始化赋值
   var s4 []int = make([]int, 0, 0)
   fmt.Println(s4)
   s5 := []int{1, 2, 3}
   fmt.Println(s5)
   // 5.从数组切片
   arr := [5]int{1, 2, 3, 4, 5}
   var s6 []int
   // 前包后不包
   s6 = arr[1:4]
   fmt.Println(s6)
}

指针

只需要记住两个符号:&(取地址)和*(根据地址取值)。

new与make的区别

    1.二者都是用来做内存分配的。
    2.make只用于slice、map以及channel的初始化,返回的还是这三个引用类型本身;
    3.而new用于类型的内存分配,并且内存对应的值为类型零值,返回的是指向类型的指针。

基础数据类型

image-20251015143245332

Go语言将数据类型分为四类:基础类型、复合类型、引用类型和接口类型。

  • 基础类型,包括:数字、字符串和布尔型。
  • 复合数据类型——数组(§4.1)和结构体(§4.2)——是通过组合简单类型,来表达更加复杂的数据结构。
  • 引用类型包括指针(§2.3.2)、切片(§4.2))、字典(§4.3)、函数(§5)、通道(§8),虽然数据种类很多,但它们都是对程序中一个变量或状态的间接引用。

1.1. 基本类型介绍

Golang 更明确的数字类型命名,支持 Unicode,支持常用数据结构。

类型 长度(字节) 默认值 说明
bool 1 false
byte 1 0 uint8
rune 4 0 Unicode Code Point, int32
int, uint 4或8 0 32 或 64 位
int8, uint8 1 0 -128 ~ 127, 0 ~ 255,byte是uint8 的别名
int16, uint16 2 0 -32768 ~ 32767, 0 ~ 65535
int32, uint32 4 0 -21亿~ 21亿, 0 ~ 42亿,rune是int32 的别名
int64, uint64 8 0
float32 4 0.0
float64 8 0.0
complex64 8
complex128 16
uintptr 4或8 以存储指针的 uint32 或 uint64 整数
array 值类型
struct 值类型
string "" UTF-8 字符串
slice nil 引用类型
map nil 引用类型
channel nil 引用类型
interface nil 接口
function nil 函数

支持八进制、 六进制,以及科学记数法。标准库 math 定义了各数字类型取值范围。

     a, b, c, d := 071, 0x1F, 1e9, math.MinInt16

空指针值 nil,而非C/C++ NULL。

复合数据类型

我们主要讨论四种类型——数组、slice、map和结构体。

posted @ 2025-11-19 17:41  我不想学编丿程  阅读(6)  评论(0)    收藏  举报