GoLang学习之变量定义和初始化

变量命名原则
go语言的变量名有字母数字和下划线组成,首字母不能为数字,但是字母不仅仅只限于英文字母,所有的UTF-8字符都是可以的。

变量声明和初始化方式
使用var关键字

var a int =  9
var str string ="jisuanji"

注意,Go语言变量类型放在变量名之后!

如果上面的代码段没有初始化值,那么变量就会被初始化为对应类型的零值。

var a int

这个代码片段声明了一个int类型变量a,并把a初始化为int零值,即0。

忽略类型
这种声明和初始化变量的方式相比于第一种,就是省去了变量的类型,Go语言编译器可以根据你的初始值自动判断出类型。例如:

//这里面的a被自动识别为int类型。
var a = 5

直接初始化
这种方法定义和初始化变量,既不需要var关键字,也不需要指定类型,快捷又方便,实际的代码中建议用这种方式。

a:=3
以上代码段定义了一个变量a,并把它初始化为3。

多变量声明
Go语言可以同时声明和初始化多个变量这个和Python有点像,具体语法如下:

//类型相同多个变量, 非全局变量
var vname1, vname2, vname3 type
vname1, vname2, vname3 = v1, v2, v3
 //和python很像,不需要显示声明类型,自动推断
var vname1, vname2, vname3 = v1, v2, v3
//出现在:=左侧的变量不应该是已经被声明过的,且只能在函数体内出现
vname1, vname2, vname3 := v1, v2, v3 

代码示例

package main

import "fmt"

var c,d int = 1,2
var e,f = 123,"hello"

func main(){
    var v21 int32  //被定义初始化为0
    var v22 int = 2
    var v23 = 3 //被自动识别为int类型
    v24 := 4    //简易声明&定义的方式
    v21 = int32(v23) //强制转换

    g, h := 123, "hello"//注意:下行这种不带声明格式的只能在函数体中出现
    fmt.Println("v21 is", v21) //v21被赋新值
    fmt.Println("v22 is", v22)
    fmt.Println("v23 is", v23)
    fmt.Println("v24 is", v24)
    fmt.Println(c, d, e, f, g, h)
}

运行结果:

v21 is 3
v22 is 2
v23 is 3
v24 is 4
1 2 123 hello 123 hello

每天进步一点点

原文地址:https://www.cnblogs.com/enumx/p/12325536.html

时间: 2024-10-12 20:22:35

GoLang学习之变量定义和初始化的相关文章

c++ 变量定义 的初始化规则

当定义没有初始化式的变量(如int i;)时,系统有可能会为我们进行隐式的初始化.至于系统是否帮我们隐式初始化变量,以及为变量赋予一个怎样的初始值,这要取决于该变量的类型以及我们在何处定义的该变量.            1]内置类型变量的初始化           内置变量是否自动初始化,取决于该变量定义的位置.           ①在全局范围内的内置类型变量均被编译器自动初始化为0值 1 #include<iostream> 2 3 using namespace std; 4 5 //

Go语言基础变量定义及初始化

package main import "fmt" func main(){ //变量定义 var v1 int var v2 string var v3 [10] int //数组 var v4 [] int //数组切片 var v5 struct{ f int } var v6 *int //指针 var v7 map[string] int //key 为string value为int的map var v8 func (a int) int //变量初始化 var var1

转载-定义时初始化和构造器初始化的差异

概述 在Java中使用一个变量时,如果我们不给变量初始化,则编译器会自动给变量初始化赋值,使得所有的变量在使用前都能得到恰当的初始化. 对于方法中的局部变量,如果不初始化就使用,则会报错(类似"The local variable i may not have been initialized"的错误信息). 举例 Dog类代码如下: public class Dog implements Serializable { private static final long serialV

GO学习笔记 - 变量在定义时没有明确的初始化时会赋值为“零值 ”。

官方教程:https://tour.go-zh.org/basics/12 变量在定义时没有明确的初始化时会赋值为 零值 . 零值是: 数值类型为 0 , 布尔类型为 false , 字符串为 "" (空字符串). 官方示例: package main import "fmt" func main() { //下面声明的变量没有被初始化,但是也具有值,就是默认的零值 var i int var f float64 var b bool var s string fm

你好,C++(7)第三部分 C++世界众生相 3.2.1 变量的定义与初始化

第3部分 C++世界众生相 在听过了HelloWorld.exe的自我介绍,完成了与C++世界的第一次亲密接触后,大家是不是都急不可待地想要一试身手,开始编写C++程序了呢?程序的两大任务是描述数据和处理数据.那么,接下来我们将面临的第一个问题就是:如何在C++中描述数据? 3.1  C++中的数据类型 编程就是使用程序设计语言来描述和表达现实世界.现实世界中有很多客观存在的事物,例如,电脑.人.汽车等.我们总是用各种数据来描述这些事物的不同属性,比如,我们用一个字符串“ChenLiangqia

(转载)你好,C++(7)第三部分 C++世界众生相 3.2.1 变量的定义与初始化

你好,C++(7)第三部分 C++世界众生相 3.2.1 变量的定义与初始化 第3部分 C++世界众生相 在听过了HelloWorld.exe的自我介绍,完成了与C++世界的第一次亲密接触后,大家是不是都急不可待地想要一试身手,开始编写C++程序了呢?程序的两大任务是描述数据和处理数据.那么,接下来我们将面临的第一个问题就是:如何在C++中描述数据? 3.1  C++中的数据类型 编程就是使用程序设计语言来描述和表达现实世界.现实世界中有很多客观存在的事物,例如,电脑.人.汽车等.我们总是用各种

Oracle变量定义的三种方式(define,variable,declare)学习笔记

1.define(即host变量) Host变量主要作用是起到一个替代变量的作用,是主机环境可以和oracle进行交互的一个媒介. 通过define定义host变量的时候必须指定变量名和变量的值,如果变量名已经存在于host变量中,则自动覆盖,这个值不可以指定类型,一律按char存储. DEFINE 变量只在当前session环境中有效. (1).语法: define variable_name = value (2).声明和初始化DEFINE变量 //声明define变量的时候必须同时初始化赋

定义变量时未初始化赋值的问题

变量定义时未初始化,导致生命周期结束后,重新定义变量时,仍然保存有之前的数据,或者数据为内存中的随机值. 如下代码: #include <iostream> using namespace std; typedef struct s_xy { int x; int y; } s_xy; int main() { // your code goes here for(int i = 0; i < 3; ++i) { s_xy point; volatile int num; if(1 ==

C++类中变量定义初始化总结

1.类成员不可以在定义时初始化 2.const类型的成员必须在初始化化列表进行初始化:一般变量在在初始化列表中初始化的顺序决定于定义的顺序 #include<iostream> using namespace std; class A { private: int n1; int n2; public: A():n2(0),n1(n2+2){} void Print(){ cout << "n1:" << n1 << ", n2