基本语法

main函数

main函数必须在main包里定义,否则没办法进行执行,main函数是入口函数。
import fmt表示将fmt包进行导入
fmt为基本输入输出流,类似c语言中的stdio.h c++中的iostream, println()打印输出

package main

import "fmt"
func main() {
	fmt.Println("Hello golang")
}

变量

  1. 变量完整声明
    语法 var 变量名 数据类型 = [变量值]
    其中变量值是可选的
  2. 段类型声明
    可以忽略数据类型,由编译器来推断数据类型是什么
    e := 20
    段类型声明只能在函数体内进行声明

常量

根据数据类型和值定义一个或一组常量,常量一旦定义了就无法改变。
定义一组常量

// 定义常量 常量一旦定义将没办法进行改变 iota没定义一组常量都会被初始化为0,每定义一个常量iota值 + 1,
const (
	c0 = iota
	c1 = iota
	c3 = 20
)

定义单个常量

const a = 20

基本数据类型

布尔类型: bool
整型: byte int int8 int16 int32 int64 uint uint8 uint16 uint32 uint64 uintptr
浮点: float32 float64
复数: complex64 complex128
字符: rune
字符串: string
其中rune类型c语言中的char
uint为无符号整数

复合数据类型

指针

类型c语言的指针,使用&来获取变量的地址并赋值到指针中,可以利用指针来访问原对象
依旧是*p表示访问指针中的地址的值,p表示访问地址,go语言不支持指针计算比如p++ p +=8 这些go语言都不支持


func main() {
	a := 20
	b := &a

	fmt.Println(*b)
	*b = 50
	fmt.Println(a)
}

数组

定义语法
var 数组名称 [数组长度]数组类型;
简略定义
数组名称 数组名称 := [数组长度]数据类型

var arr [10]int;
arr := [2]int{1, 2}
// 不声明数组长度创建数组
arr := [...]int{1, 2, 122, 3}
// 获取数组长度
len(arr)

切片

存在数组中的数量大小是固定的,没办法变更,而存在切片中数量是可以改变的。
调用make方法创造一个切片,参数1为数据类型,参数2为长度,使用make创建切片后如果是会初始化默认值,int则会初始化为0 bool会初始化为false 字符串会初始化为空串

	a := make([]bool, 10)

	a = append(a, true)
	a = append(a, true)
	fmt.Println(len(a))
	fmt.Println(cap(a))
	for i := 0; i < len(a); i++ {
		fmt.Println(a[i])
	}
}

Map

类似Java中的Map,key和value是一一对应的关系的,使用map[key]可以访问与key所对应的value
可以使用map[key类型]value类型来创建map
也可以使用make函数来创建map,make(map[key类型]value类型, map容量),其中map容量不是必须填的
可以使用map[key] = value来向map中添加元素。

	ma := make(map[string]int, 2)
	ma["name"] = 1
	ma["age"] = 12

	fmt.Println(ma)

如果拆入数据时map容量不够了,则数据不会插入到map中。
根据key删除指定key value, delete(map名称, key名称)

func main() {
	ma := make(map[string]int, 2)
	ma["name"] = 1
	ma["age"] = 12
	ma["id"] = 12
	delete(ma, "id")
	fmt.Println(ma)

	//a := test()
	//a("Lyra")

	//fmt.Println(10 / 0)
}

遍历map

	for key, value := range map名称 {
		fmt.Println(key)
		fmt.Println(value)
	}

结构体

结构体一般配合type来实现面向对象的封装特性的,语法格式如下所示

type Student struct {
	成员变量1   类型
	成员变量2   类型
	成员变量3   类型
}

在新建变量时,根据定义的key: value来为struct进行赋值即可

	lyra := Student{
	成员变量1   变量值,
	成员变量2   变量值,
	成员变量3   变量值,
	}
posted @   RainbowMagic  阅读(24)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示