基础使用

// base.go  注释
package main  // 包名
import "fmt"  // 导入 func main() {
 fmt.Println("hello")
} // wrong:  fmt.Println("hello")

main 函数是程序的运行入口,如果没有 main 函数,可以通过导入方式供其他模块调用。

注意:不能直接在函数外直接使用 fmt.Println

运行项目:

go run base.go

也可以只编译:

go build base.go

编译以后可以直接运行可执行文件:

# linux
./base
# windows
base.exe

定义变量

定义变量不赋值:

func variableNoValue()  {
 var a int
 fmt.Println(a)
}

运行函数会打印 0,在 Go 中,定义了变量类型如果没有赋值,会给它一个 zero value 作为默认值。 不赋值时,必须指定参数类型。

定义变量赋值:

func variableInitValue() {
 var a int = 2
 var b string = "hello"
 fmt.Println(a, b)
}

当多个变量的类型相同时,可以放在一起定义,并规定类型,主要是方便。

func variableMultiValue() {
 var firstName, lastName string = "liu", "zhen"
 fmt.Println(firstName, lastName)
}

赋值时也可以不规定类型,由编译器自己决定类型:

func varialbeNoType() {
 var a, b = 3, "hello"
 fmt.Println(a, b)
}

:=

Go 为变量赋值提供了一种快捷方式, 但是这种用法只能再函数体内使用,不能直接再包内定义。这也是 Go 语言用得最多的一种定义变量的方式。

func variableQuick() {
 a, b := 5, "hello"
 fmt.Println(a, b)
} //wrong
// a, b := 5, "hello"

有时候需要在包内定义一系列的变量,可以用 var 分组:

var (
 a = 1
 b = "hello"
 c = true
)

变量总结

  • 函数体内优先使用 a := 5 定义变量,更简洁。
  • 变量可以规定类型,也可以不规定。
  • 变量不赋值时,必须指定类型。
  • 可以使用括号对 var 变量分组

写一个综合例子,一个包大致长这样:

package main // 包名
import "fmt" // 导入 var (
 a = 1
 b = "hello"
 c = true
) func main() {
 fmt.Println(c)
 variableNoValue()
 variableQuick() func variableNoValue() {
 var a int
 fmt.Println(a)
} func variableQuick() {
 a, b  := 5, "hello"
 fmt.Println(a, b)
}

Go 语言入门教程:变量的更多相关文章

  1. 《Ruby语言入门教程v1.0》学习笔记-01

    <Ruby语言入门教程v1.0> 编著:张开川 邮箱:kaichuan_zhang@126.com 想要学习ruby是因为公司的自动化测试使用到了ruby语言,但是公司关于ruby只给了一 ...

  2. C语言入门教程-(5)格式化输入输出

    1.输入和输出 在程序的使用中,我们经常可以看的这么一个场景:用户需要输入数据,经过程序运算,得到结果后输出.在C语言中,输入数据和输出数据都是由库函数完成的,通过语句来输入/输出. 2.格式化输出— ...

  3. Go语言入门教程(十)之函数

    Hello 各位小伙伴大家好,我是小栈君,假期一眨眼就过去了.不知道大家玩的是否开心呢? 上次我们讲到了关于Go语言的流程控制,小栈君也希望小伙伴跟着小栈君一步一个脚印的敲一下代码,相互进步.本期我们 ...

  4. 《JavaScript语言入门教程》记录整理:入门和数据类型

    目录 入门篇 js介绍 历史 基本语法 数据类型 概述 null 和 undefined 数值 字符串 对象 函数 数组 本系列基于阮一峰老师的<JavaScrip语言入门教程>或< ...

  5. 《JavaScript语言入门教程》记录整理:运算符、语法和标准库

    目录 运算符 算数运算符 比较运算符 布尔运算符 二进制位运算符 void和逗号运算符 运算顺序 语法 数据类型的转换 错误处理机制 编程风格 console对象和控制台 标准库 Object对象 属 ...

  6. 《JavaScript语言入门教程》记录整理:面向对象

    目录 面向对象编程 实例对象与 new 命令 this关键字 对象的继承 Object对象的方法 严格模式(strict mode) 本系列基于阮一峰老师的<JavaScrip语言入门教程> ...

  7. c语言该怎么入门?C语言入门教程(非常详细)

    C语言是一门面向过程的编译型语言,它的运行速度极快,仅次于汇编语言.C语言是计算机产业的核心语言,操作系统.硬件驱动.关键组件.数据库等都离不开C语言:不学习C语言,就不能了解计算机底层. 这套「C语 ...

  8. Go 语言入门教程,共32讲,6小时(已完结)

    Go语言入门教程,共32讲,6小时(完结) 在B站:https://www.bilibili.com/video/BV1fD4y1m7TD/

  9. go语言入门教程:基本语法之变量声明及注意事项

    一.变量的使用 1.1 什么是变量 变量是为存储特定类型的值而提供给内存位置的名称.在go中声明变量有多种语法. 所以变量的本质就是一小块内存,用于存储数据,在程序运行过程中数值可以改变 1.2 声明 ...

  10. 【C语言入门教程】2.3 整型数据

    没有小数位或指数的数据类型被称为整型数据,根据使用方法的分类,整型数据可分为整型常量和整型变量.根据定义或显示的数制分类,可分为十进制.八进制和十六进制. 2.3.1 整型常量 整型常量是在运算中不可 ...

随机推荐

  1. Python --表达式和运算符

    表达式 由一个或者几个数字或者变量和运算符组合成的一行代码 通常会返回一个结果 运算符 由一个以上的值经过变化得到新值的过程就叫做运算 用于运算的符号称为运算符 运算符的分类: 算数运算符 比较或者关 ...

  2. X-CTF(REVERSE高级) 666

    主函数输入的字符会和key比较长度和enflag比较内容,所以这道题的flag和输入有关 key长度为0x12,enflag的值为:izwhroz""w"v.K" ...

  3. Vuser发生器

    一.脚本开发过程: 1.计划:收集测试信息,整理业务逻辑,制定测试计划 2.录制脚本: 新建脚本---选择脚本协议(单协议脚本:多协议脚本:最近使用过协议)选择协议---开始录制脚本 脚本录制时,Vu ...

  4. 【雕爷学编程】Arduino动手做(51)---触摸按键模块

    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器和模块,依照实践(动手试试)出真知的理念,以学习和交流为目的,这里准备 ...

  5. 模板渲染jnja2模块

    模板渲染jnja2模块 模板的引入: 在返回动态页面时,上述我们在08版web框架返回每次访问的时间,利用自己写的占位符进行字符串替换进行动态响应: 在实际应用中,完全可以从数据库中读取数据,然后替换 ...

  6. tomcat启动失败怎么回事?

    1.系统环境没有配置好 2.web.xml文件里有错误拼写

  7. Python3高级核心技术97讲

    可以毫不夸张的说:这门课程是初中级Python开发人员向高级进阶的必学课程 许多Pythoner喜欢追求新的框架,但却不重视Python本身基础知识的学习, 他们不知道的是,语言本身的进阶优先于框架, ...

  8. 前端星计划笔记-day1

    前端 功能,美观,安全,无障碍,性能,兼容,体验 前端编程思想 WA doctype: 文档版本 浏览器决定渲染模式 语义化: 所有的标签都有自己的含义,属性 可读性 前端规范 whatwg css显 ...

  9. PAT 1032 Sharing (25分) 从自信到自闭

    题目 To store English words, one method is to use linked lists and store a word letter by letter. To s ...

  10. [工具推荐]003.Tortoisegit使用教程

    Git简介:       Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目,是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理.Git 是 ...