当前位置: 首页 > 面试题库 >

在Go编程语言中定义变量

魏襦宗
2023-03-14
问题内容

我正在学习Go语言,碰巧看到这种类型的变量声明:

i:=1;

但是它说Go具有静态变量。即变量应该以这种方式定义

var i int=1;

那么这两种方法有什么区别?在第一个中,我们不需要指示数据类型。为什么会这样呢?


问题答案:

第一个i := 1称为短变量声明。这是带有初始值设定项表达式但没有类型的常规变量声明的简写:

var IdentifierList = ExpressionList

您没有指定的类型i,但是i会根据某些规则指定类型。它的类型将被自动推断。在这种情况下,它将是类型,int因为初始化器表达式1是默认类型为的无类型整数常量int,因此当需要类型时(例如,在短变量声明中使用它),int将推导类型。

因此,Go是静态类型的。这意味着变量将具有静态类型,并且在运行时存储在变量中的值将始终为该类型。静态类型并不意味着
必须显式地指定静态类型,而只是意味着变量必须具有静态类型-在编译时决定-即使您使用短变量声明并且未指定它,也要满足哪种条件。

请注意,如果使用var关键字声明变量,也可以省略类型:

var i = 1

在这种情况下,类型也将从初始化程序表达式的类型中推导出。

规格:变量声明:

如果存在类型,则为每个变量指定该类型。否则,将为每个变量分配赋值的相应初始化值的类型。如果该值是未类型化的常量,则首先将其转换为默认类型;如果它是无类型的布尔值,则首先将其转换为type
bool。预声明的值nil不能用于初始化没有显式类型的变量。



 类似资料:
  • 简短模式的含义是定义的同时初始化 package main import "fmt" func main() { num := 10 num := 20 // 编译报错, 重复定义 fmt.Println("num = ", num) } 一定不要把 := 当做赋值运算符来使用 package main import "fmt" var num = 10 // 定义一个全局变

  • 包是Go语言中代码组成和代码编译的主要方式。关于包的基本信息我们已经在前面介绍过了,本节我们主要来介绍一下如何自定义一个包并使用它。 到目前为止,我们所使用的例子都是以一个包的形式存在的,比如 main 包。在Go语言里,允许我们将同一个包的代码分隔成多个独立的源码文件来单独保存,只需要将这些文件放在同一个目录下即可。 我们创建的自定义的包需要将其放在 GOPATH 的 src 目录下(也可以是

  • 变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。变量可以通过变量名访问。 Go 语言变量名由字母、数字、下划线组成,其中首个字母不能为数字。 声明变量的一般形式是使用 var 关键字: var identifier type 变量声明 第一种,指定变量类型,声明后若不赋值,使用默认值。 var v_name v_type v_name = value 第二种,根据值自行判定变量

  • Go 语言中变量的概念和 C 语言中也一样,所以我们直接来看下如何定义和使用变量即可,C 语言中定义变量的格式: 数据类型 变量名称; 数据类型 变量名称1, 变量名称2; #include <stdio.h> int main(int argc, const char * argv[]) { int num1; // 先定义 num1 = 10; // 后初始化

  • 本书涵盖 CGO、Go 汇编语言、RPC 实现、Web 框架实现、分布式系统等高阶主题,针对Go语言有一定经验想深入了解Go语言各种高级用法的开发人员。

  • 本书涵盖CGO、Go汇编语言、RPC实现、Web框架实现、分布式系统等高阶主题,针对Go语言有一定经验想深入了解Go语言各种高级用法的开发人员。对于刚学习Go语言的读者,建议先从《Go语言圣经》开始系统学习Go语言的基础知识。 目录 第一章 语言基础 1.1. Go语言创世纪 1.2. Hello, World 的革命 1.3. 数组、字符串和切片 1.4. 函数、方法和接口 1.5. 面向并发的