热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

go基础12:golang中变量和常量声明

go基础1-2:golang中变量和常量声明-golang中变量和常量声明1变量变量是计算机语言中能储存计算结果或能表示值的抽象表示。不同的变量保存的数据类型可能不一样。1.
golang中变量和常量声明

1 变量

变量是计算机语言中能储存计算结果或能表示值的抽象表示。不同的变量保存的数据类型可能不一样。

1.1 变量声明

声明变量的语法

var identifier type

var (variable): 变量的缩写,是声明变量的关键字

identifier: 标识符,变量名称

type: 变量类型

注意:在GO中声明变量的方式不同于java中声明方式,GO中变量名称在前,变量类型在后,并且Go中声明的变量必须使用,需注意。

举例:

package main

func main() {
    var name string
    var age int
    var isLeader bool
}

1.2 批量声明变量

批量声明时,可以使用var关键字起始,后面跟一对(),变量定义写在()

举例:

package main

func main() {
    // 批量声明
    var (
        name string
        age int
        isLeader bool
    )
}

1.3 变量初始化

Go语言在声明变量的时候,会自动对变量对应的内存区域进行初始化操作。每个变量会被初始化成其类型的默认值,例如: 整型和浮点型变量的默认值为0, 字符串变量的默认值为空字符串"",布尔型变量默认为false,切片、函数、指针变量的默认为nil(空,例如javanull)。

变量初始化语法

var 变量名 类型 = 表达式

举例:

package main

func main() {
    var name string = "wanik"
    var age int = 20
    var isLeader bool = false
    // 批量声明同理
    var (
        name1 string = "wanik"
        age1 int = 20
        isLeader1 bool = false
    )
}

GO语言特性之类型推导

我们在声明一个或多个变量时,无需设置其类型,golang会根据我们赋的值推导数据类型,有点像Javascript中声明变量的方式

举例:

package main

func main() {
    var name = "wanik"
    var age = 20
    var isLeader = false
}

快速初始化多个变量

使用一个var关键字,然后在var关键字后面跟多个变量用 ,(逗号) 隔开,同时在 = (赋值符号)后面跟上多个初始值,同样用 ,(逗号) 隔开

举例:

package main
func main() {
    var name, age, isLeader = "wanik", 20, false
}

1.4 短变量声明

注意:短变量声明函数内部才能使用,在函数外不能使用,声明时使用 := 运算符进行声明和初始化,这也是常用的声明方式,省略了var关键字和类型。

举例:

package main

func main() {
    name := "wanik"
    age := 20
    isLealer := true
}

1.5 匿名变量

如果一个函数返回多个变量,有一些变量使用不到,此时可以用_表示一个匿名变量,匿名变量不可用

举例:

package main

func GetUserInfo() (string, int) {
    return "wanik", 20
}

func main() {
    name, _ := GetUserInfo()
}

2 常量

2.1 常量声明

常量声明方式与变量声明方式类似,也有不同点,声明方式如下:

const constantName type = value

const: constant (常量) 的缩写,声明常量的关键字

constantName: 常量名称

type: 常量类型

value: 常量值

2.2 声明常量应注意的问题(可能不全,后面遇到会继续补充...)

  1. 声明的常量可以不使用但是必须赋值
  2. 常量不能使用 := 来定义常量
  3. 常量声明必须const关键字修饰,不可省略(批量声明常量是共用最前面的const关键字)
  4. 常量值不可修改

推荐阅读
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 关键词:Golang, Cookie, 跟踪位置, net/http/cookiejar, package main, golang.org/x/net/publicsuffix, io/ioutil, log, net/http, net/http/cookiejar ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • Java实战之电影在线观看系统的实现
    本文介绍了Java实战之电影在线观看系统的实现过程。首先对项目进行了简述,然后展示了系统的效果图。接着介绍了系统的核心代码,包括后台用户管理控制器、电影管理控制器和前台电影控制器。最后对项目的环境配置和使用的技术进行了说明,包括JSP、Spring、SpringMVC、MyBatis、html、css、JavaScript、JQuery、Ajax、layui和maven等。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • 本文介绍了如何在给定的有序字符序列中插入新字符,并保持序列的有序性。通过示例代码演示了插入过程,以及插入后的字符序列。 ... [详细]
  • JavaSE笔试题-接口、抽象类、多态等问题解答
    本文解答了JavaSE笔试题中关于接口、抽象类、多态等问题。包括Math类的取整数方法、接口是否可继承、抽象类是否可实现接口、抽象类是否可继承具体类、抽象类中是否可以有静态main方法等问题。同时介绍了面向对象的特征,以及Java中实现多态的机制。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
author-avatar
赵翠123_797
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有