Golang

一、VSCode配置Go环境

1、国内设置代理:

 go env -w GOPROXY=

2、ctrl+shift+x, 安装golang插件

3、配置golang辅助工具

Ctrl+Shift+P 输入Go:Install/Update Tools 全选安装

 

配置 Visual Studio Code for Go 开发

https://learn.microsoft.com/zh-cn/azure/developer/go/configure-visual-studio-code

二、Golang地址

https://golang.google.cn/doc/

https://chai2010.cn/advanced-go-programming-book/index.html

 

三、Golang 语法

1、变量声明

var identifier type   
var identifier1, identifier2 type  //定变量类型,如果没有初始化,则变量默认为零值
var v_name = value    //根据值自行判定变量类型。
v_name := value //这种不带声明格式的只能在函数体中出现
const identifier [type] = value //常量
func function_name( [parameter list] ) [return_types] {
   函数体
}

2、数组、切片Slice、Map

Map 是一种无序的键值对的集合。Map 最重要的一点是通过 key 来快速检索数据,key 类似于索引,指向数据的值。
Go 语言中 range 关键字用于 for 循环中迭代数组(array)、切片(slice)、通道(channel)或集合(map)的元素。在数组和切片中它返回元素的索引和索引对应的值,在集合中返回 key-value 对。
 
//数组
// Go 数组的长度不可改变
var variable_name [SIZE] variable_type  
var balance = [...]float32{1000.0, 2.0, 3.4, 7.0, 50.0}
//切片Slice
var slice1 []type = make([]type, len)
//Map
var map_variable map[key_data_type]value_data_type 
map_variable := make(map[key_data_type]value_data_type)

四、http 库使用

Body 和 GetBody:重点在于 Body 是一次性的,而 GetBody 默认情况下是没有,一般中间件
会考虑帮你注入这个方法
• URL:注意 URL 里面的字段的含义可能并不如你期望的那样
• Form:记得调用前先用 ParseForm,别忘了请求里面加上 http 头

 

五、接口

```
/* 定义接口 */
type interface_name interface {
   method_name1 [return_type]
   method_name2 [return_type]
   method_name3 [return_type]
   ...
   method_namen [return_type]
}

/* 定义结构体 */
type struct_name struct {
   /* variables */
}

/* 实现接口方法 */
func (struct_name_variable struct_name) method_name1() [return_type] {
   /* 方法实现 */
}
...
func (struct_name_variable struct_name) method_namen() [return_type] {
   /* 方法实现*/
}
```

 

六、 Go 工程化

https://github.com/golang-standards/project-layout

/cmd 本项目的主干
/internal 私有应用程序与代码
/pkg 外部应用程序可以使用的库代码
/api   API 协议定义目录
 

 

 

七、补充知识

1.  设计者通过 goroutine 这种轻量级线程的概念来实现这个目标,然后通过 channel 来实现各个 goroutine 之间的通信。他们实现了分段栈增长和 goroutine 在线程基础上多路复用技术的自动化。

 

2. 环境变量

$GOROOT 表示 Go 在你的电脑上的安装位置,它的值一般都是 $HOME/go,当然,你也可以安装在别的地方。

$GOARCH 表示目标机器的处理器架构,它的值可以是 386、amd64 或 arm。

$GOOS 表示目标机器的操作系统,它的值可以是 darwin、freebsd、linux 或 windows。

$GOBIN 表示编译器和链接器的安装位置,默认是 $GOROOT/bin,如果你使用的是 Go 1.0.3 及以后的版本,一般情况下你可以将它的值设置为空,Go 将会使用前面提到的默认值。

3. cgo

工具 cgo 提供了对 FFI(外部函数接口)的支持,能够使用 Go 代码安全地调用 C 语言库,你可以访问 cgo 文档主页:http://golang.org/cmd/cgo

4. 命名规范

Go 的源文件以 .go 为后缀名存储在计算机中,这些文件名均由小写字母组成,如 scanner.go 。如果文件名由多个部分组成,则使用下划线 _ 对它们进行分隔,如 scanner_test.go 。文件名不包含空格或其他特殊字符。

函数返回值:尽量使用命名返回值:会使代码更清晰、更简短,同时更加容易读懂。

 

 

 

 


 


 


 

 
posted @ 2022-10-25 15:18  尘恍若梦  阅读(306)  评论(0编辑  收藏  举报