当前位置: 首页 > article >正文

Go基础学习笔记-知识点

学习笔记记录了我在学习官方文档过程中记的要点,可以参考学习。

go build *.go 文件 编译
go run *.go 执行
go mod init 生成依赖管理文件
gofmt -w *.go 格式换
  • 名称的大小写用来控制方法的可见域
  • 主方法及包命名规范
package main //注意package的命名,作为主包
import "fmt"
func main() {
    fmt.Println("hello word")
}
  • 初始化mod文件
go mod init example/hello
  • 运行
go run .
  • 查看环境变量
     
go env
  • 添加别的moudle,如果使用了go.work指明了工作空间,则不需要再执行命令添加本地moudle
go mod edit -replace learn/greetings=../greetings
go mod tidy
  • go.work文件用于标明工作空间
go 1.22.0

use(
    ./basic
    ./greetings
)
  • you initialize a map with the following syntax: make(map[key-type]value-type)

  • 单元测试

    Test function names have the form TestName, 
  • 查看已经安装的包

D:\1workspace_go\greetings>go list
learn/greetings

D:\1workspace_go\greetings>go list all
  •  下载依赖
go get .
或
go get example.com/theirmodule

go get example.com/theirmodule@v1.3.4
go get example.com/theirmodule@latest

To get the module at a specific commit, append the form @commithash:
$ go get example.com/theirmodule@4cf76c2

To get the module at a specific branch, append the form @branchname:
$ go get example.com/theirmodule@bugfixes
  • 修改依赖下载源

GOPROXY="https://proxy.golang.org,direct"
不使用proxy下载
The GOPRIVATE or GONOPROXY environment variables may be set to 
lists of glob patterns matching module prefixes 
that are private and should not be requested from any proxy. 
For example:
GOPRIVATE=*.corp.example.com,*.research.example.com
  • 查看依赖版本更新
go list -m -u all
go list -m -u example.com/theirmodule
  •  语法学习
https://golang.google.cn/tour
  •  结构体是便于不同类型数据封装的结构,它也是一种值类型。区别与pointer
  • 数组

func main() {
	var a [2]string
	a[0] = "Hello"
	a[1] = "World"
	fmt.Println(a[0], a[1])
	fmt.Println(a)

	primes := [6]int{2, 3, 5, 7, 11, 13}
	fmt.Println(primes)
}
  •  遍历数组
package main

import (
	"math/rand"

	"golang.org/x/tour/pic"
)

func Pic(dx, dy int) [][]uint8 {
	pic := make([][]uint8, dx)
	for x := range pic {
		pic[x] = make([]uint8, dy)
		for y := range pic[x] {
			pic[x][y] = uint8(rand.Intn(255))
		}
	}
	return pic
}

func main() {
	pic.Show(Pic)
}

  •  遍历map
 for key, value := range myMap {
     fmt.Println("Key:", key, "Value:", value)
 }
  •  闭包典例
package main

import "fmt"

// fibonacci is a function that returns
// a function that returns an int.
func fibonacci() func() int {
	le:=-1
	ri:=1
	return func()int{
		fib:=le+ri
		le=ri
		ri=fib
		return fib
	}
}

func main() {
	f := fibonacci()
	for i := 0; i < 10; i++ {
		fmt.Println(f())
	}
}


http://www.kler.cn/news/235019.html

相关文章:

  • 速盾:怎么拿高防服务器做CDN
  • springBoot,springSecurity返回乱码
  • Linux系统调试课:Linux错误码介绍
  • system V——进程间通信
  • 大模型学习 一
  • 软件架构与系统架构:区别与联系的分析
  • 跟踪分析一款新型Megahorse窃密木马
  • RabbitMQ之五种消息模型
  • 一、基础数据结构——2.队列——3.双端队列和单调队列2
  • 学习Android的第十天
  • JVM的主要组成部分,以及它们的作用。JVM中的内存区域有哪些,它们各自的作用是什么?什么是Java的堆内存,它如何影响程序的性能?
  • 鸿蒙harmony--TypeScript对象详解
  • Android录音功能的实现及踩坑记录
  • BIO、NIO、Netty演化总结
  • JavaScript DOM 变动观察器(Mutation observer)
  • DataBinding源码浅析---初始化过程
  • python coding with ChatGPT 打卡第20天| 二叉搜索树:搜索、验证、最小绝对差、众数
  • GPT-4模型的创造力
  • 蓝桥杯备赛Day9——链表进阶
  • Ps:直接从图层生成文件(图像资源)
  • 《CSS 简易速速上手小册》第10章:未来的 CSS(2024 最新版)
  • 【MySQL】-21 MySQL综合-8(MySQL默认值+MySQL非空约束+MySQL查看表中的约束)
  • Ainx-V0.2-简单的连接封装与业务绑定
  • Could not connect to Redis at 127.0.0.1:6379:由于目标计算机积极拒绝,无法连接...问题解决方法之一
  • leaflet 显示自己geoserver发布的中国地图
  • WordPress修改所有用户名并发送邮件通知的插件Easy Username Updater
  • vue双向绑定的原理
  • CTF-PWN-沙箱逃脱-【侧信道爆破】(2021-蓝帽杯初赛-slient)
  • 【开源】基于JAVA+Vue+SpringBoot的实验室耗材管理系统
  • ERROR: Could not build wheels for roslz4