免费网站安全软件大全下载安装,通州区建设局网站,网页游戏宣传片排行榜,烟台高端网站建设公司基本语法 变量声明#xff1a; 使用 var 关键字#xff0c;如 var x int 声明一个整型变量 x。简短声明方式#xff0c;如 y : 0 直接初始化 y。 函数定义#xff1a; 使用 func 关键字定义函数#xff0c;如 func add(a int, b int) int { return a b }。 控制结构…基本语法 变量声明 使用 var 关键字如 var x int 声明一个整型变量 x。简短声明方式如 y : 0 直接初始化 y。 函数定义 使用 func 关键字定义函数如 func add(a int, b int) int { return a b }。 控制结构 if 语句、for 循环等语法类似于其他编程语言。 导入包 使用 import 关键字导入包如 import fmt。
package main // 定义包名每个Go程序都是由包组成的import fmt // 导入fmt包用于格式化输出// main函数是每个可执行程序的入口点
func main() {var x int 10 // 使用var关键字声明一个整型变量x并初始化为10y : 20 // 简短声明方式声明并初始化变量y为20sum : add(x, y) // 调用add函数传入x和y作为参数fmt.Println(Sum:, sum) // 使用fmt包的Println函数打印结果// 使用for循环从1加到10for i : 1; i 10; i {fmt.Println(i)}// 使用if语句判断sum是否大于20if sum 20 {fmt.Println(Sum is greater than 20)} else {fmt.Println(Sum is less than or equal to 20)}
}// add函数接收两个int类型的参数并返回它们的和
// 函数返回值的类型定义在参数列表之后
func add(a int, b int) int {return a b // 返回a和b的和
}数据类型
基本类型 整型Integers 有符号整型int8, int16, int32, int64无符号整型uint8 (或 byte), uint16, uint32, uint64通用整型int, uint大小依赖于实现通常为32或64位特殊整型uintptr用于存储指针 浮点型Floats float32, float64 复数型Complex Numbers complex6432位实部和虚部complex12864位实部和虚部 布尔型Booleans bool值为 true 或 false 字符串Strings string使用双引号 ... 或反引号 ...
复合类型 数组Arrays 如 [4]int含有4个整数的数组 切片Slices 如 []int整数的切片长度可变 结构体Structs 如 struct { Name string; Age int } 映射Maps 如 map[string]int键为字符串值为整数的映射
引用类型 指针Pointers 如 *int指向整数的指针 切片Slices 如前所述切片是引用类型。 映射Maps 如前所述映射是引用类型。 通道Channels 用于在不同Goroutines间进行通信如 chan int 函数类型Function Types 如 func(int) bool接收一个整数参数返回布尔值的函数
接口类型Interfaces
如 interface{}空接口可以持有任何类型的值
类型代码示例
package mainimport (fmtmath/cmplxunsafe
)// 定义一个结构体
type Person struct {Name stringAge int
}// 定义一个接口
type Geometry interface {area() float64
}// 主函数
func main() {// 整型var a int8 127var b uint16 65535var c int 10000var ptr uintptr uintptr(unsafe.Pointer(c))// 浮点型var d float32 3.14var e float64 2.71828// 复数型var f complex64 complex(5, 12)var g complex128 cmplx.Sqrt(-5 12i)// 布尔型var h bool true// 字符串var i string Hello, Go!// 数组var j [4]int [4]int{1, 2, 3, 4}// 切片k : []int{5, 6, 7, 8}// 结构体l : Person{Name: Alice, Age: 30}// 映射m : map[string]int{one: 1, two: 2}// 指针n : c// 通道o : make(chan int)// 函数类型var p func(int) bool func(x int) bool {return x%2 0}// 接口var q Geometry l// 打印变量值fmt.Println(int8:, a)fmt.Println(uint16:, b)fmt.Println(int:, c)fmt.Println(uintptr:, ptr)fmt.Println(float32:, d)fmt.Println(float64:, e)fmt.Println(complex64:, f)fmt.Println(complex128:, g)fmt.Println(bool:, h)fmt.Println(string:, i)fmt.Println(array:, j)fmt.Println(slice:, k)fmt.Println(struct:, l)fmt.Println(map:, m)fmt.Println(pointer:, *n)fmt.Println(function:, p(10))fmt.Println(interface:, q.area())// 使用通道go func() {o - 123}()fmt.Println(channel:, -o)
}// 实现Person类型的area方法
func (p Person) area() float64 {return float64(p.Age) // 随意计算的“面积”
}