前言 本章主要介绍golang的变量声明与使用,以及使用过程中需要注意的地方 一、变量是什么? golang中的变量实质上就是一小块内存地址,用来存储数据,而且这些数据都是可以改变的; 内存地址的格式类似于: 不方便使用,所以我们习惯给变量对应的内存地址起一个方便记忆、使用的名字,这个名字就是变量名,它指向(关联)一个内存块,内存块中存储的就是我们的变量值(这块内容会在指针篇详细介绍)
Go的变量声明还是很灵活的,相比于Java来说有两个特点: 玩法更多能省则省 package main import "fmt" //全局变量 var n1 int = 1 var n2 = 2 //全局变量不可以使用n3 := 3方式省略var关键字 //批量声明 var ( n3 = 100 n4 = 200 str1 = "Leo Lee" ) //变量的使用 func
一、局部变量 四种声明方式 + 多变量声明: package main import "fmt" //局部变量声明 func main() { //方法一: 声明一个变量和数据类型,不初始化值;默认值为0; var lvA int fmt.Println("lvA = ", lvA) //方法二: 声明一个变量和数据类型,并且初始化值。 var lvB int = 10 fmt
一、变量 Go 是静态类型的,不能在运行时更改变量的类型。 面试问题 关于全局变量的初始化,正确的使用方式如下 A. var i int = 10 B. var i = 10 C. 我 := 10 这是对 Go 语言中全局变量声明和赋值的检查。Go 语言中的变量声明使用关键字 var,例如: var str string //声明变量 str = "test" //给变量赋值
1. 内部结构 1.1. 数组 Array 先说一下数组, 的确在 Go 语言中, 因为 slice 的存在, 使得 array 的出场率不高。但想要很好的理解 slice, 还是要先要了解 array. Go 语言的数组和其他语言一样, 没有什么特别的地方, 就是一段以元素类型(如int)为单位的连续内存空间。数组创建时, 被初始化为元素类型的零值. 声明举例: var arr
引言 最近在刷面试题的过程中,因为本地Go使用的是1.20版本,而网上关于 Go slice扩容策略的描述还大多停留在 2021年前的版本,也就是Go1.17版本和之前的所有版本,遂分享出来。 如果你使用的Go版本大于等于Go1.18,可要千万注意啦。 Go1.18之前: Go1.18后是256Go1.18后由表达式计算 Go1.18开始: 小于256改成了根据增长因子(growth
go语言切片函数参数传递+append()函数扩容 给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。 二叉树递归go代码: var ans [][]int func pathSum(root *TreeNode, targetSum int) ( [][]int) { ans := make([][]int
s := []string{"a", "b"} // 此时切片长度为2,容量也为2。 s = append(s, "c") s = append(s, "d") s = append(s, "e") fmt.Printf("len=%d, cap=%d\n", len(s), cap(s)) // 结果:len=5, cap=8 s1 := []string{"a", "b"} //
douyin LSY_HELLOWORLD,已成功入职互联网大厂,请关注我,了解非科班的程序员的工作生活把 Slice是什么 Slice中文名切片,简单的可以理解为可以变化的数组, Slice的底层指向为一个数组,Slice由三部分组成 data 存什么 Len存了多少,长度 cap 能存多少,底层数组的长度 不同的切片指向同一个数组时,修改数组或者任意一个切片的内容
思考 s1[3] package main import "fmt" func main() { /*append:给切片添加元素*/ s1 := []string{"beijing", "shanghai", "guangzhou"} s1[3] = "shenzhen" //错误!索引越界! fmt.Println(s1) } append()方法为切片添加元素 概述