Go语学习笔记 - 变量、常量 | 从零开始Go语言

简介: Go语学习笔记 - 变量、常量 | 从零开始Go语言

学习笔记,写到哪是哪。


1、变量

变量的声明比较自由,和python比较像。方式有多种,可以多重定义。


样例如下



var (
  k int64  = 100
  l string = "asd"
)
//变量声明
func variable() {
  var a int = 123
  var b, c int = 10, 100
  var d = "haha"
  var e = 1.9
  var f, g = 10, 1.8
  h := "haha"
  i, j := 10, "haha"
  //e := 19
  fmt.Println(a, b, c)
  fmt.Println(d)
  fmt.Println(e)
  fmt.Printf("f的类型为:%T,g的类型为:%T,f=%v,g=%v\n", f, g, f, g)
  fmt.Println(h)
  fmt.Printf("i的类型为:%T,j的类型为:%T,i=%v,j=%v\n", i, j, i, j)
  fmt.Println(k, l)
}

执行结果


123 10 100

haha                                      

1.9                                      

f的类型为:int,g的类型为:float64,f=10,g=1.8

haha                                      

i的类型为:int,j的类型为:string,i=10,j=haha

100 asd    


注意


1、使用var对变量进行声明的时候,如果不指定类型,会自动给一种类型。


2、如果是":="来定义变量,只能在方法内,不能定义全局。


image.png


3、如果使用":="不能定义已经存在的变量。


4、var()写法一般用于声明全局变量。


2、常量

常量是一个简单值的标识符,在程序运行时,不会被修改的量。


样例如下


const (

x  = "abc"

y  = len(x)

z  = unsafe.Sizeof(x)

w1 = iota

w2

w3

w4 = "ooo"

w5 = "zzz"

w6

w7 = iota

w8

)

//常量声明
func constant() {
  const age int = 18
  const name = "小王"
  const param1, param2, param3 = 1, false, "kk"
  fmt.Printf("%v今年%d岁,其他信息:%v%v%v\n", name, age, param1, param2, param3)
  fmt.Println(x, y, z)
  fmt.Println(w1, w2, w3, w4, w5, w6, w7, w8)
}

执行结果


小王今年18岁,其他信息:1falsekk          

abc 3 16                                  

3 4 5 ooo zzz zzz 9 10    


注意


1、const在方法内的使用和var基本一致,也可以进行多重定义。


2、在常量定义中可以使用一些内置函数,len()、unsafe.Sizeof()等。


3、常量定义中有个iota作为计数常量使用,会按照常量数进行+1赋值,可以中断再恢复。目前我还认识不到这个有什么具体的使用场景,后面继续学习。


小结

学习完这些其实有不少疑问,后面还需要持续思考回顾。


相关文章
|
1天前
|
存储 安全 编译器
go语言中进行不安全的类型操作
【5月更文挑战第10天】Go语言中的`unsafe`包提供了一种不安全但强大的方式来处理类型转换和底层内存操作。包含两个文档用途的类型和八个函数,本文也比较了不同变量和结构体的大小与对齐系数,强调了字段顺序对内存分配的影响。
43 8
go语言中进行不安全的类型操作
|
1天前
|
Go
配置go语言下载包 - 蓝易云
这个命令会将包下载到你的GOPATH目录下,并自动安装它。
25 1
|
2天前
|
安全 Go 调度
Go语言中的并发编程
Go语言自带了强大的并发编程能力,它的协程机制可以让程序轻松地实现高并发。本文将从并发编程的基础概念出发,介绍Go语言中的协程机制、通道和锁等相关知识点,帮助读者更好地理解并发编程在Go语言中的实践应用。
|
4天前
|
IDE Go 开发工具
【GO基础】2. IDEA配置Go语言开发环境
【GO基础】2. IDEA配置Go语言开发环境
|
4天前
|
Ubuntu Unix Linux
【GO基础】1. Go语言环境搭建
【GO基础】1. Go语言环境搭建
|
5天前
|
JSON 前端开发 Go
lucky - go 语言实现的快速开发平台
go 语言实现的快速开发平台,自动生成crud代码,前端页面通过json配置,无需编写前端代码。
11 0
|
6天前
|
存储 Java Go
Go 语言切片如何扩容?(全面解析原理和过程)
Go 语言切片如何扩容?(全面解析原理和过程)
16 2
|
6天前
|
负载均衡 Go 调度
使用Go语言构建高性能的Web服务器:协程与Channel的深度解析
在追求高性能Web服务的今天,Go语言以其强大的并发性能和简洁的语法赢得了开发者的青睐。本文将深入探讨Go语言在构建高性能Web服务器方面的应用,特别是协程(goroutine)和通道(channel)这两个核心概念。我们将通过示例代码,展示如何利用协程处理并发请求,并通过通道实现协程间的通信和同步,从而构建出高效、稳定的Web服务器。
|
6天前
|
算法 Go 分布式数据库
构建高可用的分布式数据库集群:使用Go语言与Raft共识算法
随着数据量的爆炸式增长,单一数据库服务器已难以满足高可用性和可扩展性的需求。在本文中,我们将探讨如何使用Go语言结合Raft共识算法来构建一个高可用的分布式数据库集群。我们不仅会介绍Raft算法的基本原理,还会详细阐述如何利用Go语言的并发特性和网络编程能力来实现这一目标。此外,我们还将分析构建过程中可能遇到的挑战和解决方案,为读者提供一个完整的实践指南。
|
6天前
|
消息中间件 Go API
基于Go语言的微服务架构实践
随着云计算和容器化技术的兴起,微服务架构成为了现代软件开发的主流趋势。Go语言,以其高效的性能、简洁的语法和强大的并发处理能力,成为了构建微服务应用的理想选择。本文将探讨基于Go语言的微服务架构实践,包括微服务的设计原则、服务间的通信机制、以及Go语言在微服务架构中的优势和应用案例。