[Golang]变数重声明与重名变数

一、整理变数重声明与重名变数的描述。

变数重声明,对已经声明过的变数,再次声明。
前提条件如下:

  1. 变数的类型在初始化时,就已经决定,所以再次声明时,赋予的类型必须与原本的类型一致,否则会产生编译错误。
  2. 变数的重声明,只能使用在短变量声明,否则也会产生编译错误。
  3. 变数的重声明,只能在某一个程序码区块中。
  4. 对同一变数的多次声明,变数只有一个。

重名变数,对已经声明过的变数,重新声明。

  1. 重名变数之间,不存在类型必须始终一致的限制,类型可以是任意。
  2. 在多个程序码区块之间,由相同的标志符号代码组成的变数。
  3. 重名变数中涉及的变数是多个。

二、范例

package main

import (
	"fmt"
)

func main() {
  block := "function"
  {
    block := 123456 //重名变数
    fmt.Printf("The block is %d.\n", block)
  }
  block = "functionABC"//变数重声明
  fmt.Printf("The block is %s.\n", block)
}

https://play.golang.org/p/rBg_QLdIOCu

总结心智图
https://ithelp.ithome.com.tw/upload/images/20201027/20131728xqS3rXTwop.png

参考来源:

https://www.twblogs.net/a/5c3788dcbd9eee35b3a59e6c
https://www.jianshu.com/p/b3e060d39936


<<:  [笔记] mongodb 安装教学

>>:  第 53 天 - 研究 shell 解释器 - for each 批量停用没有用到服务

p value到底怎麽解释

在面试的时候很常都会从基础的问题开始问起,p值就像是你吃饱了吗一样每次都会出现,今天就来讲解一下这个...

2D transform Continued

大家好,我是西瓜,你现在看到的是 2021 iThome 铁人赛『如何在网页中绘制 3D 场景?从 ...

倒数第3天

大家安安 突然发现有人关注 但是~ 前面的坑还没有补好 後面很难写 不过这篇我预计会写"算...

应用 LINE Front-end Framework 轻松建立互动 (3)

今天继续搭配 LIFF 的文件研究 Line LIFF App line-liff-v2-start...

自动化测试,让你上班拥有一杯咖啡的时间 | Day 14 - 取得 ESLint 支援

此系列文章会同步发文到个人部落格,有兴趣的读者可以前往观看喔。 今天要跟大家分享在 cypress...