golang学习笔记

golang语言:


数量类型:
    基础数据类型:
                布尔型:ture\false
                数值型:
                        整型:
                            有符号:int\int8\int16\int32\int64
                            没有符号:uint\uint8\byte\uint16\uint32\uint64
                            uintptr是整型,可以足够保存指针的值得范围,在32平台下为4字节,在64位平台下是8字节
                            有符号可以存储任何整型
                            无符号只能存储自然数
                            位数不同存储的整型数据范围不同
                        浮点型:float32\float64\complex64\complex128
                字符串型:string
                        golang中没有专门的字符类型,如果要存储单个字符,一般使用byte来保存
                        go的字符串由字节组成
                        字符只能被单引号包裹,不能用双引,双引号包裹是字符串
                        当直接输出type值时,就是输出对应字符的ASCll码值
                        go语言的字符使用UTF-8编码,英文字母占一个字符,汉字占3个字符
                        go中,字符的本质是一个整数,直接输出时,是该字符对应的UTF-8编码的码值
                        go语言中字符串是不可变的

    派生数据类型:
                指针:\&(取地址);*(根据地区取值)  
                    指针地址:
                    指针类型:ptr :=&v 
                            ptr:用于接受地址变量
                            ptr的类型就为T,称做T的指针类型,*代表指针
                    指针取值:
                    空指针:当一个指针被定义后没有分配到任何变量时,它的值为nil;空指针判断:var a *int  fmt.println(a)
                数组(array)
                结构体(struct)
                通道(channel)
                切片(slice)
                函数(func)
                接口(interface)
                map

---------golang for
switch 不写条件的时候当if与else运用

go语言的for循环有3种形式,只有其中的一种使用分号
for init; condition; post{}

for condition{}

for{}

init:一般为赋值表达式,给控制变量赋初值

condition:关系表达式或逻辑表达式,循环控制条件

post:一般为赋值表达式,给控制变量增量或减量

----------golang switch case
golang 分支表达式可以是任意类型,不限于常量,可省略break,默认自动终止


Switch也可以用于type检查,switch语句还可以被用于type-switch来判断某个interface变量中实际存储的变量类型

switch x.(type){
  case type:
        statement(s)
}

----------------go常用操作密令
查看环境设置:go env

查看go版本:go version

设置顶级vendor作为依赖:go env -w GOFLAGS="-mod=vendor"  查看env 是GOFLAGS=-mod=vendor,取消:g o env -w GOFLAGS="-mod=";

指定gomod编译 模式:go build -mod=vendor

go mod download下载模块到本地缓存,缓存路径是$GOPATH/pkg/mod/cache

go mod edit是提供了命令版编辑go.mod的功能,例如go mod edit -fmt go.mod会格式化go.mod

go mod graph把模块之间的依赖图显示出来

go mod init初始化模块(例如把原本dep管理的依赖关系转换过来)

go mod tidy增加缺失的包,移除没用的包

go mod vendor把依赖拷贝到vendor/目录下

go mod verify确认依赖关系

go mod why解释为什么需要包和模块

go build 用于编译源码文件

go run 编译并运行go源文件

go get 获取远程代码包

GOROOT:Go 语言安装根目录的路径,也就是 GO 语言的安装路径。
GOPATH:若干工作区目录的路径。是我们自己定义的工作空间。
GOBIN:GO 程序生成的可执行文件(executable file)的路径。

-----所遇异常的解决办法(可能并非最优解)

“go”不被识别为cmdlet,函数,脚本文件或可操作程序的名称 (解决go安装路径变化导致的问题)

解决方案:$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine")

问题:no required module provides package mian.go: go.mod file not found in current directory or any parent directory; see 'go help modules'

解决办法:go env -w GO111MODULE=auto

GoLang学习笔记主要包括以下几个方面: 1. 语法规则:Go语言要求按照语法规则编写代码,例如变量声明、函数定义、控制结构等。如果程序中违反了语法规则,编译器会报错。 2. 注释:Go语言中的注释有两种形式,分别是行注释和块注释。行注释使用`//`开头,块注释使用`/*`开头,`*/`结尾。注释可以提高代码的可读性。 3. 规范代码的使用:包括正确的缩进和空白、注释风格、运算符两边加空格等。同时,Go语言的代码风格推荐使用行注释进行注释整个方法和语句。 4. 常用数据结构:如数组、切片、字符串、映射(map)等。可以使用for range遍历这些数据结构。 5. 循环结构:Go语言支持常见的循环结构,如for循环、while循环等。 6. 函数:Go语言中的函数使用`func`关键字定义,可以有参数和返回值。函数可以提高代码的重用性。 7. 指针:Go语言中的指针是一种特殊的变量,它存储的是另一个变量的内存地址。指针可以实现动态内存分配和引用类型。 8. 并发编程:Go语言提供了goroutine和channel两个并发编程的基本单位,可以方便地实现多线程和高并发程序。 9. 标准库:Go语言提供了丰富的标准库,涵盖了网络编程、文件操作、加密解密等多个领域,可以帮助开发者快速实现各种功能。 10. 错误处理:Go语言中的错误处理使用`defer`和`panic`两个关键字实现,可以有效地处理程序运行过程中出现的错误。 通过以上内容的学习,可以掌握Go语言的基本语法和编程思想,为进一步学习和应用Go语言打下坚实的基础。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Golang学习笔记](https://blog.csdn.net/weixin_52310067/article/details/129467041)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [golang学习笔记](https://blog.csdn.net/qq_44336275/article/details/111143767)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值