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

Go基础学习笔记-01

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

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/a/231235.html

相关文章:

  • LeetCode 跳跃类问题的解题技巧:跳跃游戏与最少跳跃数
  • C语言指针专题四 -- 多级指针
  • LabVIEW温度修正部件测试系统
  • 玩转大语言模型——配置图数据库Neo4j(含apoc插件)并导入GraphRAG生成的知识图谱
  • 【图床配置】PicGO+Gitee方案
  • 运算符重载(输出运算符<<) c++
  • 【C语言】(13)堆和栈
  • 【推荐算法】userid是否需要建模
  • PCIE Order Set
  • excel统计分析——成组数据秩和检验
  • 秘塔科技推出AI搜索产品「秘塔AI搜索」
  • Windows 安装 MySQL 最新最简教程
  • 【AG32VF407】国产MCU+FPGA,更新官方固件解决8Mhz内部晶振不准,Verilog实测7.9Mhz!
  • ubuntu 安装 kvmQemu no active connection to install on
  • 百卓Smart管理平台 uploadfile.php 文件上传漏洞复现(CVE-2024-0939)
  • 第三百一十二回
  • 浏览器F12调试
  • QT设置qss
  • Golang 基础 环境配置和包管理
  • Golang 并发 生产者消费者模式
  • 《MySQL 简易速速上手小册》第2章:数据库设计最佳实践(2024 最新版)
  • uniapp 开发App 权限授权 js-sdk
  • win10系统连接WiFi,输入正确密码,但还是提示错误
  • FPS游戏框架漫谈第二十二天
  • 【Eclipse插件开发】3工作台workbench探索【下篇】
  • ftp安装脚本文档