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

           

目录
打赏
0
0
0
0
6
分享
相关文章
监控局域网其他电脑:Go 语言迪杰斯特拉算法的高效应用
在信息化时代,监控局域网成为网络管理与安全防护的关键需求。本文探讨了迪杰斯特拉(Dijkstra)算法在监控局域网中的应用,通过计算最短路径优化数据传输和故障检测。文中提供了使用Go语言实现的代码例程,展示了如何高效地进行网络监控,确保局域网的稳定运行和数据安全。迪杰斯特拉算法能减少传输延迟和带宽消耗,及时发现并处理网络故障,适用于复杂网络环境下的管理和维护。
揭秘 Go 语言中空结构体的强大用法
Go 语言中的空结构体 `struct{}` 不包含任何字段,不占用内存空间。它在实际编程中有多种典型用法:1) 结合 map 实现集合(set)类型;2) 与 channel 搭配用于信号通知;3) 申请超大容量的 Slice 和 Array 以节省内存;4) 作为接口实现时明确表示不关注值。此外,需要注意的是,空结构体作为字段时可能会因内存对齐原因占用额外空间。建议将空结构体放在外层结构体的第一个字段以优化内存使用。
Go 语言中的 Sync.Map 详解:并发安全的 Map 实现
`sync.Map` 是 Go 语言中用于并发安全操作的 Map 实现,适用于读多写少的场景。它通过两个底层 Map(`read` 和 `dirty`)实现读写分离,提供高效的读性能。主要方法包括 `Store`、`Load`、`Delete` 等。在大量写入时性能可能下降,需谨慎选择使用场景。
|
11天前
|
企业监控软件中 Go 语言哈希表算法的应用研究与分析
在数字化时代,企业监控软件对企业的稳定运营至关重要。哈希表(散列表)作为高效的数据结构,广泛应用于企业监控中,如设备状态管理、数据分类和缓存机制。Go 语言中的 map 实现了哈希表,能快速处理海量监控数据,确保实时准确反映设备状态,提升系统性能,助力企业实现智能化管理。
27 3
阿里双十一背后的Go语言实践:百万QPS网关的设计与实现
解析阿里核心网关如何利用Go协程池、RingBuffer、零拷贝技术支撑亿级流量。 重点分享: ① 如何用gRPC拦截器实现熔断限流; ② Sync.Map在高并发读写中的取舍。
如何利用Go语言的高效性、并发支持、简洁性和跨平台性等优势,通过合理设计架构、实现负载均衡、构建容错机制、建立监控体系、优化数据存储及实施服务治理等步骤,打造稳定可靠的服务架构。
在数字化时代,构建高可靠性服务架构至关重要。本文探讨了如何利用Go语言的高效性、并发支持、简洁性和跨平台性等优势,通过合理设计架构、实现负载均衡、构建容错机制、建立监控体系、优化数据存储及实施服务治理等步骤,打造稳定可靠的服务架构。
95 1
探索Go语言中的并发模式:goroutine与channel
在本文中,我们将深入探讨Go语言中的核心并发特性——goroutine和channel。不同于传统的并发模型,Go语言的并发机制以其简洁性和高效性著称。本文将通过实际代码示例,展示如何利用goroutine实现轻量级的并发执行,以及如何通过channel安全地在goroutine之间传递数据。摘要部分将概述这些概念,并提示读者本文将提供哪些具体的技术洞见。
Go语言的并发特性
【10月更文挑战第26天】Go语言的并发特性
37 1
Go语言:高效并发的编程新星
【10月更文挑战第21】Go语言:高效并发的编程新星
88 7
深入浅出Go语言的并发之道
在本文中,我们将探索Go语言如何优雅地处理并发编程。通过对比传统多线程模型,我们将揭示Go语言独特的goroutine和channel机制是如何简化并发编程,并提高程序的效率和稳定性。本文不涉及复杂的技术术语,而是用通俗易懂的语言,结合生动的比喻,让读者能够轻松理解Go语言并发编程的核心概念。

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等