Go学习1:常量、变量的命名

golang 安装 | go-zero Documentation

在这个文档里,环境变量系统自动配好了(自定义的一样)不需要修改环境变量。

我下载的是1.25版本的。

目前使用go mod管理项目。

C++的产出比太低,而Java和C#哲学又来源于C++。

Go语言成功的项目

使用vscode管理项目:

以前项目需要在goPath下创建,现在不需要了,在哪里都可以。

首先下载安装包,下一步下一步,安装go语言的安装包

go run运行项目

go build编译项目

我这里是go build后生成对应的.exe文件,然后.\ .exe文件

1. print和println的区别

1.println会换行

print不会换行

2.println输出多个字符中间会有空格

print没有空格

Go 复制代码
fmt.Print("A", "B", "C")   //中间没有空格
fmt.Println("A", "B", "C") //中间有空格

2.prinln和printf的区别


2. 定义变量

Go 复制代码
var a = "aaa" //go语言中变量定义后必须要使用
// fmt.Println(a)
fmt.Printf("%v", a)

%v是格式化输出

1.var 声明变量

var 变量名 类型

Go 复制代码
var username string

变量声明后没有初始化的话 ,值为空。

Go 复制代码
var a1 = "张三"
fmt.Println(a1)

变量名称的命名:Go语言变量名由字母、数字、下划线组成,其中首个字符不能为数字。

Go语言中关键字和保留字都不能用作变量名称。

同一作用域内,变量名称不能重复声明

2. 初始化

①第一种初始化变量的方式:

Go 复制代码
var username string
username = "张三"

② 定义的时候初始化

Go 复制代码
var username string = "张三"

会有报错

Go 复制代码
var username = "张三"
3. 一次声明多个变量

var 变量名称,变量名称 类型

var (

变量名称 类型

变量名称 类型

)

Go 复制代码
var a1, a2  string
Go 复制代码
var (
    a1 string
    a2 int
    a3 string
)

打印测试:

Go 复制代码
a1 = "张三"
a2 = 20
a3 = "男"
fmt.Println(a1, a2, a3)
4. 短变量声明法
①基本类型
Go 复制代码
username := "张三"

短变量声明法

Go 复制代码
fmt.Printf("类型: %T", username)

通过***%T***我们可以知道这个声明的变量是什么类型

②声明多个变量

使用短变量声明法一次声明多个变量并初始化

Go 复制代码
a,b,c := 12,13,20

如果类型不一致,也不会报错

Go 复制代码
a,b,c := 12,13,"C"
Go 复制代码
fmt.Printf("a类型:%T, b类型:%T, c类型:%T", a, b, c)

!!注意

短变量声明法只能声明局部变量,不能声明全局变量

5.匿名变量

匿名变量 在使用多重赋值时,如果想要忽略某个值,可以使用匿名变量 (anonymous variable)

匿名变量可以用一个下划线**_**表示

举例:

首先封装一个方法:

Go 复制代码
func getUserInfo() (string, int){
    return "zhangsan", 10
}

我们要返回一个string类型和一个int类型的数据

然后在main函数中 调用这个方法

Go 复制代码
var username , age = getUserInfo()
fmt.Println(username, age)

这个我们可以获得这两个值。

如果我们想要接收username,忽略age,这样写:

Go 复制代码
var username, _ =getUserInfo()
fmt.Println(username)//zhangsan

匿名变量不占用命名空间,不会分配内存,所以匿名变量之间不存在重复声明

Go 复制代码
var _, age = getUserInfo()
fmt.Println(age)

3.定义常量

相对于变量,常量是恒定不变的值,多用于程序运行期间不会改变的那些值。

常量的声明和变量声明非常类似,只是把var换成了 const, 常量在定义的时候必须赋值。

3.1 使用const定义常量

Go 复制代码
const pi = 3.14159

如果是这样,会报错

Go 复制代码
const pi string
pi = "xxx"

只能定义的时候赋值使用

3.2 声明多个常量

Go 复制代码
const (
    A = "A"
    B = "B"
)

const同时声明多个常量时,如果省略了值则表示和上面一行的值相同。

Go 复制代码
const (
    n1 = 100
    n2
    n3
    n4
)

这样的话,n2,n3,n4和n1的值相同。都是100

3.3 const 结合 iota 的使用

iota是golang语言的常量计数器,只能在常量的表达式中使用。

iota在const关键字出现时将被重置为0(const内部的第一行之前),const中每新增一行常量声明将使iota计数一次(iota可理解为const语句块中的行索引)。

Go 复制代码
const a = iota
fmt.Println(a)  // 0

如果一个常量等于iota时,这个常量就是0.

Go 复制代码
const (
    n1 = iota
    n2
    n3
    n4
)

fmt.Println(n1, n2, n3, n4) //0,1,2,3
Go 复制代码
const (
    n1 = iota
    _
    n3
    n4
)
fmt.Println(n1, n3, n4)  //0  2 3

iota还可以在声明中进行插队

Go 复制代码
const (
    n1 = iota  //0
    n2 = 100   //100
    n3 = iota  //2
    n4         //3
)

多个 iota 定义在一行

Go 复制代码
const (
    n1, n2 = iota + 1, iota + 2   //1,2
    n3, n4                        //2,3
    n5, n6                        //3,4
)

4. GO语言变量、常量命名规则

  1. 变量名称必须由数字、字母、下划线组成。
  2. 标识符开头不能是数字。
  3. 标识符不能是保留字和关键字。
  4. 变量的名字是区分大小写的。如" age" 和"Age" 是不同的变量。在实际的运用中,也建议不要用一个单词大小写区分两个变量。
  5. 标识符(变量名称)一定要见名思意:变量名称建议用名词,方法名称建议用动词。
  6. 变量命名一般采用驼峰式,当遇到特有名词(缩写或简称,如DNS)的时候,特有名词根据是否私有全部大写(公有)或小写(私有)。

常量建议全部用大写,当然不大写也不报错。


5.Go语言代码风格

  1. 代码每一行结束后不用写分号(;)

  2. 运算符左右建议各加一个空格

var username string = "harriet"

  1. Go语言程序员建议使用驼峰式命名

当名字由几个单词组成时优先采用大小写分隔

  1. 强制的代码风格

左括号必须紧接着语句不换行。

  1. 可以使用 go fmt格式化代码
相关推荐
爱吃甜品的糯米团子4 分钟前
详解 JavaScript 内置对象与包装类型:方法、案例与实战
java·开发语言·javascript
知花实央l6 分钟前
【Web应用实战】 文件上传漏洞实战:Low/Medium/High三级绕过(一句话木马拿webshell全流程)
前端·学习·网络安全·安全架构
snakecy7 分钟前
信息系统项目管理师--论文case
大数据·学习·职场和发展·区块链
天狗下凡22 分钟前
【OpenGL学习】第2课:用OpenGL创建第一个窗口
学习
郝学胜-神的一滴26 分钟前
Linux下,获取子进程退出值和异常终止信号
linux·服务器·开发语言·c++·程序人生
AI科技星40 分钟前
张祥前统一场论动量公式P=m(C-V)误解解答
开发语言·数据结构·人工智能·经验分享·python·线性代数·算法
嘉年华-cocos41 分钟前
考研英语 5400 纯数据版
学习·英语·背单词·音标
CodeByV1 小时前
【C++】继承
开发语言·c++
权泽谦2 小时前
用 Python 做一个天气预报桌面小程序(附源码 + 打包与部署指导)
开发语言·python·小程序
ftpeak2 小时前
《Rust+Slint:跨平台GUI应用》第八章 窗体
开发语言·ui·rust·slint