Go 语言

本文深入探讨Go语言的关键特性,包括自动垃圾回收、丰富的内置类型、函数多返回值、错误处理、匿名函数和闭包、类型和接口、并发编程、反射及语言交互性。详细介绍了语言结构,如包声明、引入包、函数、变量、语句与表达式、注释,以及Go的数据类型,涵盖布尔、数字、字符串、派生类型和其他类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

特性

  • 自动垃圾回收
  • 更丰富的内置类型
  • 函数多返回值
  • 错误处理
  • 匿名函数和闭包
  • 类型和接口
  • 并发编程
  • 反射
  • 语言交互性

语言结构

  • 包声明 (你必须在源文件中非注释的第一行指明这个文件属于哪个包)
  • 引入包 ( 告诉 Go 编译器这个程序需要使用包(的函数,或其他元素),比如fmt)
  • 函数
  • 变量
  • 语句 & 表达式
  • 注释
package main

import "fmt"

func main() {
   /* 这是我的第一个简单的程序 */
   fmt.Println("Hello, World!")
}

注意: {不能单独放在一行,否则会错误

数据类型

  • 布尔 【bool】
  • 数字 【int【int8,int16,int32,int64,uint8,uint16,uint32,uint64,】,float32,float64,complex64,complex128】
  • 字符串 【Go语言的字符串的字节使用UTF-8编码标识Unicode文本。】
  • 派生 【指针类型(Pointer),数组类型,结构化类型(struct),Channel 类型,函数类型, 切片类型,接口类型(interface), Map 类型 】
  • 其他 【byte(类似uint8),uintptr(无符号整型,用于存放一个指针)】

变量声明

var a int               // 使用默认值
var b int = 10
var c = 10
d := 10                // 注意 :=左侧的变量不应该是已经声明过的,否则会导致编译错误。
var x, y int
var e, f = 123, "hello"

var (  // 这种因式分解关键字的写法一般用于声明全局变量
    i int
    j bool
)

const a, b, c = 1, false, "str" // 常量
// 常量可以用作枚举
const (
    Unknown = 0
    Female = 1
    Male = 2
)
// 常量可以用len(), cap(), unsafe.Sizeof()函数计算表达式的值
const (
    o = "abc"
    p = len(o)
    q = unsafe.Sizeof(o)  // 字符串类型在 go 里是个结构, 包含指向底层数组的指针和长度, ,这两部分每部分都是 8 个字节,所以是16字节
)


func main(){
    // 这种不带声明格式的只能在函数体中出现
    g, h := 123, "hello"
}

使用操作符 := 可以高效地创建一个新的变量,称之为初始化声明。

所有像 int、float、bool 和 string 这些基本类型都属于值类型,使用这些类型的变量直接指向存在内存中的值。

当使用等号 = 将一个变量的值赋值给另一个变量时,如:j = i,实际上是在内存中将 i 的值进行了拷贝

iota,特殊常量,可以认为是一个可以被编译器修改的常量。
第一个 iota 等于 0,每当 iota 在新的一行被使用时,它的值都会自动加 1;

const (
    a = iota   //0
    b          //1
    c          //2
    d = "ha"   //独立值,iota += 1
    e          //"ha"   iota += 1
    f = 100    //iota +=1
    g          //100  iota +=1
    h = iota   //7,恢复计数
    i          //8
)
fmt.Println(a,b,c,d,e,f,g,h,i)    // 结果 0 1 2 ha ha 100 100 7 8

const (
    i=1<<iota
    j=3<<iota
    k
    l
)
// 结果 1 6 12 24
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值