Go 语言入门很简单 -- 3. Go 变量 #私藏项目实操分享#

简介: Go 语言入门很简单 -- 3. Go 变量 #私藏项目实操分享#

变量

变量可以从两个角度来理解:

  1. 可以改变的量,赋值一次还可以随意更改
  2. 使用多变,可以一次定义,多次使用

变量是指一个包含部分已知或未知数值或信息(即一个值)的存储地址,变量一般具有特定类型和关联名称。

package main
import "fmt"
func main() {
    var hello string = "Hello World~"
    fmt.Println("Hello, World!")
    fmt.Println(hello)
}

如上面的代码, hello 就是一个变量。我们来拆解这变量是如何来的:

在 Go 语言中,定义变量使用 var 关键字,

然后定义变量名如 hello 和类型 string

最后给这个变量指定一个值 Hello World

总结,变量:变量名+类型+值构成。

也可以先声明变量名和类型,最后再给变量赋值,如下面的代码:

package main
import "fmt"
func main() {
    var x int
    var y int
    x = 1014
    y = 2021
    fmt.Println("x + y = ", x+y)
}

变量可以更改

当定义了一个变量,赋值给一个值之后,还可以对这个变量进行修改,比如:

package main
import "fmt"
func main() {
    var nickName string
    nickName = "小王"
    fmt.Println("十年前,人们叫我: ", nickName)
    // After 10 years
    nickName = "老王"
    fmt.Println("十年后,人们叫我: ", nickName)
}

同样的变量名 nickName ,在程序中使用两次,代码运行结果:

十年前,人们叫我:  小王
十年后,人们叫我:  老王

海象运算符

什么是海象运算符( The Walrus Operator )。因为:=很像海象——眼睛小,长着两枚长长的牙,是不是很形象。

image.png

Go 语言为了方便程序员定义变量,使用这种海象运算符的变量命名方式: hello := "Hello World"

:= 之前并且没有指定变量类型。因为我们不需要指定该类型,因为 Go 编译器能够根据变量值推断类型,然后分配给这个变量。

hello 正在分配一个字符串字面量, hello 就被赋予字符串类型。另外,编译器可以也用 var 语句进行变量类型推导。

hello := "Hello World"
var hello2 = "Hello World"

所以之前的数学计算代码也可以写成这样:

package main
import "fmt"
func main() {
    x := 1024
    y := 2021
    fmt.Println("x + y = ", x+y)
}

变量命名

正确命名变量是软件开发的一个重要部分。 名称必须以字母开头,并且可以包含字母数字 _(下划线)符号。 Go 编译器不关心您命名变量的名称,但是最好让变量命名描述清楚,比如名字选择 name ,比命名为 x 更好。

x := "三多"
fmt.Println("My cat's name is:", x)
name := "柚子"
fmt.Println("The other cat's name is:", name)
catName := "柚子"
fmt.Println("My cat's name is:", catName)

最后,推荐一个帮助程序员命名的网站: https://unbug.github.io/codelf/,比如我们想命名name,可以搜索看看其他程序员如何命名 name 相关的变量名。

image.png

           

相关文章
|
2月前
|
存储 设计模式 安全
Go语言中的并发编程:从入门到精通###
本文深入探讨了Go语言中并发编程的核心概念与实践技巧,旨在帮助读者从理论到实战全面掌握Go的并发机制。不同于传统的技术文章摘要,本部分将通过一系列生动的案例和代码示例,直观展示Go语言如何优雅地处理并发任务,提升程序性能与响应速度。无论你是Go语言初学者还是有一定经验的开发者,都能在本文中找到实用的知识与灵感。 ###
|
2月前
|
Serverless Go
Go语言中的并发编程:从入门到精通
本文将深入探讨Go语言中并发编程的核心概念和实践,包括goroutine、channel以及sync包等。通过实例演示如何利用这些工具实现高效的并发处理,同时避免常见的陷阱和错误。
|
3月前
|
安全 Go 开发者
破译Go语言中的并发模式:从入门到精通
在这篇技术性文章中,我们将跳过常规的摘要模式,直接带你进入Go语言的并发世界。你将不会看到枯燥的介绍,而是一段代码的旅程,从Go的并发基础构建块(goroutine和channel)开始,到高级模式的实践应用,我们共同探索如何高效地使用Go来处理并发任务。准备好,让Go带你飞。
|
8天前
|
存储 监控 算法
员工上网行为监控中的Go语言算法:布隆过滤器的应用
在信息化高速发展的时代,企业上网行为监管至关重要。布隆过滤器作为一种高效、节省空间的概率性数据结构,适用于大规模URL查询与匹配,是实现精准上网行为管理的理想选择。本文探讨了布隆过滤器的原理及其优缺点,并展示了如何使用Go语言实现该算法,以提升企业网络管理效率和安全性。尽管存在误报等局限性,但合理配置下,布隆过滤器为企业提供了经济有效的解决方案。
44 8
员工上网行为监控中的Go语言算法:布隆过滤器的应用
|
28天前
|
存储 Go 索引
go语言中数组和切片
go语言中数组和切片
39 7
|
28天前
|
Go 开发工具
百炼-千问模型通过openai接口构建assistant 等 go语言
由于阿里百炼平台通义千问大模型没有完善的go语言兼容openapi示例,并且官方答复assistant是不兼容openapi sdk的。 实际使用中发现是能够支持的,所以自己写了一个demo test示例,给大家做一个参考。
|
28天前
|
程序员 Go
go语言中结构体(Struct)
go语言中结构体(Struct)
100 71
|
27天前
|
存储 Go 索引
go语言中的数组(Array)
go语言中的数组(Array)
104 67
|
30天前
|
Go 索引
go语言for遍历数组或切片
go语言for遍历数组或切片
98 62
|
3天前
|
算法 安全 Go
Go 语言中实现 RSA 加解密、签名验证算法
随着互联网的发展,安全需求日益增长。非对称加密算法RSA成为密码学中的重要代表。本文介绍如何使用Go语言和[forgoer/openssl](https://github.com/forgoer/openssl)库简化RSA加解密操作,包括秘钥生成、加解密及签名验证。该库还支持AES、DES等常用算法,安装简便,代码示例清晰易懂。
28 16