农业网站模板WordPress,德清建设银行官方网站,扁平风格网站 模板,wordpress 直播插件Go语言学习笔记#xff1a;基础语法和类型 目录 Go语言学习笔记#xff1a;基础语法和类型学习路线前言变量声明常量数据类型布尔型#xff08;Boolean#xff09;整型#xff08;Integer#xff09;浮点型#xff08;Floating point#xff09;复数型#xff08;Comp…Go语言学习笔记基础语法和类型 目录 Go语言学习笔记基础语法和类型学习路线前言变量声明常量数据类型布尔型Boolean整型Integer浮点型Floating point复数型Complex numbers字符串String 类型转换控制结构if、elseforswitch 数组切片映射结构体指针函数 学习路线 前言
Go语言是一种静态类型、编译型语言它的语法受到了C语言的影响但在简化代码书写和增强代码安全性方面做了很多改进。下面是Go语言基础语法和类型的详细学习指南。
变量声明
Go语言中你可以使用var关键字来声明变量并可选择立即初始化变量。
var a int 1
var b 2 // 类型推断
c : 3 // 简短声明只能在函数内部使用常量
常量使用const关键字声明且必须在编译时确定值。
const Pi 3.14159数据类型
Go语言提供了一系列的基本数据类型
布尔型(Boolean): bool它的值是true或false。整型(Integer): 包括int、int8、int16、int32、int64以及它们的无符号版本uint、uint8、uint16、uint32、uint64和uintptr。浮点型(Floating point): float32和float64。复数型(Complex numbers): complex64和complex128它们分别对应float32和float64两种浮点数精度。字符串(String): string表示UTF-8字符序列。
布尔型Boolean
var isTrue bool true
var isFalse bool false
fmt.Println(isTrue) // 输出true
fmt.Println(isFalse) // 输出false整型Integer
var intVal int 10
var int8Val int8 127
var int16Val int16 32767
var int32Val int32 2147483647
var int64Val int64 9223372036854775807
var uintVal uint 10 // 无符号整型
fmt.Println(intVal, int8Val, int16Val, int32Val, int64Val, uintVal)浮点型Floating point
var float32Val float32 3.1415926535 // 单精度浮点数
var float64Val float64 3.141592653589793 // 双精度浮点数
fmt.Printf(%.2f\n, float32Val) // 输出3.14
fmt.Printf(%.2f\n, float64Val) // 输出3.14复数型Complex numbers
var complex64Val complex64 1 2i
var complex128Val complex128 1 2i
fmt.Println(complex64Val) // 输出(12i)
fmt.Println(complex128Val) // 输出(12i)字符串String
var str string Hello, World!
fmt.Println(str) // 输出Hello, World!在Go语言中字符串是不可变的字符序列使用UTF-8编码表示。字符串可以包含任意的数据包括byte值0但是通常用来包含人类可读的文本。文本字符串通常被解释为采用UTF-8编码的Unicode码点rune序列。
类型转换
Go要求显式类型转换语法为Type(v)将值v转换为Type类型。
i : 42
f : float64(i)
u : uint(f)控制结构
Go语言中的控制结构包括if、else、for和switch
if、else
if i%2 0 {fmt.Println(i, is even)
} else {fmt.Println(i, is odd)
}
for
for i : 0; i 10; i {fmt.Println(i)
}
switch
switch os : runtime.GOOS; os {
case darwin:fmt.Println(OS X.)
default:fmt.Println(%s., os)
}数组
数组是具有固定大小且类型相同的元素序列。
var a [5]int // 声明一个包含5个整数的数组切片
切片是对数组的抽象它提供了更加灵活的、动态大小的视图。
s : make([]int, 0, 10) // 创建一个初始长度为0、容量为10的切片
s append(s, 2) // 向切片追加元素映射
映射是键值对的无序集合。
m : make(map[string]int) // 创建一个空映射
m[key] 42 // 设置键值对结构体
结构体是一种聚合数据类型它用于将不同类型的数据组合在一起。
type Vertex struct {X, Y int
}var v Vertex{1, 2} // 创建一个Vertex类型的结构体变量指针
指针保存了值的内存地址。
var p *int
i : 42
p i // p指向i
*p 21 // 通过指针p设置i的值函数
函数可以有多个返回值并支持命名返回值。
func swap(x, y string) (string, string) {return y, x
}这些是Go语言的基础部分学习时可以通过编写简单的程序来实践这些概念。Go的标准库中还有大量的包提供了额外的功能比如文件操作、网络通信等等。随着对这些基础知识的熟练掌握你可以开始探索这些高级话题进一步提高你的Go编程能力。