手把手带你走进Go语言之语法基础解析

目录
  • 概述
  • Go 语法基础
    • 关键字
    • 标识符
    • 数据类型
  • 变量声明
  • 多变量声明
  • 值类型和引用类型

概述

Golang 是一个跨平台的新生编程语言. 今天小白就带大家一起携手走进 Golang 的世界. (第 2 课)

Go 语法基础

Go 程序可以由多个标记组成:

  • 关键字
  • 标识符
  • 常量
  • 字符串
  • 符号

关键字

Go 语言有 25 个关键字:

关键字 作用
var & const 变量和常量的声明
package & import 导入
func 用于定义函数和方法
return 用于函数返回
defer someCode 在函数退出前执行
go 用于并行
select 用于选择不同类型的通讯
interface 用于定义接口
struct 用于定义抽象数据类型
break, case, continue, for, falthrough, else, if. switch, goto, defult 流程控制
chan 用于 channel 通讯
type 用于声明自定义类型
map 用于声明 map 类型数据
range 用于读取 slice, map, channel 数据

标识符

标识符用来命名变量, 类型等程序实体. 一个标识符实际上就是一个或者多个字母 (A-Z 和 a-z), 数字 (0-9), 下划线 (_) 组成的序列. 但是第一个字符必须是字母或者下换线而不是数字.

Go 不允许在表示符中使用标点符号, 例如: “@”, “$”, 和 “%”. 并且 Go 是一种区分大小写的编程语言.

数据类型

类型 说明
布尔类型 (Boolean) true / false
整数类型 (Integer) 1, 2, 3, 4, …
浮点类型 (Float) 1.1, 2.2, 3.3, 4.4, …
字符串类型 (String) 字符串类型表示字符串值的合集. 字符串是不可变类型, 一旦创建后, 就不可能改变字符串的内容.
派生类型 包括指针可型, 数组类型, 结构类型, 联合类型, 函数类型, 切片类型, 接口类型

例子:

package main

import "fmt"

func main() {

	// 定义字符串变量
	var str = "我是小白呀"

	// 定义整数型变量
	var integer = 8

	// 定义浮点型变量
	var float = 1.2

	// 定义布尔类型变量
	var bool = true

	fmt.Println("string: ", str, "\ninteger: ", integer, "\nfloat: ", float, "\nboolean: ", bool)

}

输出结果:

string: 我是小白呀
integer: 8
float: 1.2
boolean: true

变量声明

格式 1, 指定变量类型, 声明后再进行赋值:

var  变量名 变量类型
变量名 = 值

格式 2, 根据值自行判定变量类型:

var 变量名 = 值

格式 3, 省略 var. (注意: “:=” 左侧的变量不应该是已经声明过的, 否则会导致编译错误):

v_name := value

例子:

package main

import "fmt"

func main() {

	// 方法一
	var num1 int      // 声明变量
	num1 = 1          // 赋值
	fmt.Println(num1) // 调试输出

	// 方法二
	var num2 = 2      // 自行判定变量类型
	fmt.Println(num2) // 调试输出

	// 方法三
	num3 := 3         // 省略var
	fmt.Println(num3) // 调试输出

}

输出结果:

1
2
3

多变量声明

格式:

var 变量名称1, 变量名称2, 变量名称3 = 值1, 值2, 值2

例子:

package main

import "fmt"

func main() {

	// 多变量声明
	var num4, num5, num6 = 1, 2, 3
	fmt.Println(num4, num5, num6)  // 调试输出
}

输出结果:

1 2 3

值类型和引用类型

所有像 int, float, bool 和 string 这些基本类型都属于值类型. 使用这些类型的变量直接指向存在内存中的值.

当使用等号 “=” 将一个变量赋值给另一个变量时 (num2 = num1). 实际上在内存中将 num1 的值进行了拷贝.

例子:

package main

import "fmt"

func main() {

	// 定义变量
	var num1 = 2
	var num2 = num1

	// 调试输出值和地址
	fmt.Println(num1, &num1)
	fmt.Println(num2, &num2)
}

输出结果:

2 0xc0000ac058
2 0xc0000ac070

到此这篇关于手把手带你走进Go语言之语法基础解析的文章就介绍到这了,更多相关Golang 语法基础内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • golang的基础语法和常用开发工具详解

    golang的基础语法 golang的基础语法和其他语言大部分都差别不大,如果我们有学习过其他语言,比如JavaScript,php,java,python等,有其他语言的语法基础,那么我们学习golang将更容易上手.那我们直接开始介绍golang的语法吧. 注释 注释分单行注释和多行注释.golang的注释和其他的开发语言的注释是一样的.双斜杠表示单行注释,/**/表示多行注释. // 单行注释这么开头 /* 多行注释 */ 定义包名 一般来说,使用开发工具的时候,包名是不需要手动输入的,开

  • 详解golang 模板(template)的常用基本语法

    模板 在写动态页面的网站的时候,我们常常将不变的部分提出成为模板,可变部分通过后端程序的渲染来生成动态网页,golang提供了html/template包来支持模板渲染. 这篇文章不讨论golang后端的模板读取及渲染方法,只讨论模板中嵌入变量,渲染变量.循环等一些基本用法. 变量 在golang渲染template的时候,可以接受一个interface{}类型的变量,我们在模板文件中可以读取变量内的值并渲染到模板里. 有两个常用的传入参数的类型.一个是struct,在模板内可以读取该struc

  • 对Golang import 导入包语法详解

    package 的导入语法 写 Go 代码的时经常用到 import 这个命令用来导入包,参考如下: import( "fmt" ) 然后在代码里面可以通过如下的方式调用: fmt.Println( "我爱北京天安门" ) fmt 是 Go 的标准库,它其实是去 GOROOT 下去加载该模块,当然 Go 的 import 还支持如下两种方式来加载自己写的模块: 相对路径 import "./model" // 当前文件同一目录的 model 目录

  • 手把手带你走进Go语言之语法基础解析

    目录 概述 Go 语法基础 关键字 标识符 数据类型 变量声明 多变量声明 值类型和引用类型 概述 Golang 是一个跨平台的新生编程语言. 今天小白就带大家一起携手走进 Golang 的世界. (第 2 课) Go 语法基础 Go 程序可以由多个标记组成: 关键字 标识符 常量 字符串 符号 关键字 Go 语言有 25 个关键字: 关键字 作用 var & const 变量和常量的声明 package & import 导入 func 用于定义函数和方法 return 用于函数返回 d

  • 手把手带你走进Go语言之常量解析

    目录 概述 常量 常量计算 iota 概述 Golang 是一个跨平台的新生编程语言. 今天小白就带大家一起携手走进 Golang 的世界. (第 3 课) 常量 常量 (Constant) 是指程序在执行过程中不会改变的固定值. 常量可以是任何基本数据类型. 如整数常量, 浮点常量, 字符常量, 枚举常量. 常量一般都会被编译器视为常规变量, 只是常量的值不能再定义之后修改. 格式 1: const 变量名 = 值 格式 2: const 变量名 变量类型 例子: package main i

  • 手把手带你走进Go语言之运算符解析

    目录 概述 Go 运算符 算术运算符 关系运算符 逻辑运算符 赋值运算符 概述 Golang 是一个跨平台的新生编程语言. 今天小白就带大家一起携手走进 Golang 的世界. Go 运算符 运算符 (operator) 可以帮助我们在程序中执行数学或逻辑运算. Go 语言内置的运算符有: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 算术运算符 运算符 描述 + 相加 - 相减 * 相乘 / 相除 % 取余 ++ 自增 – 自减 例子: package main import "f

  • 手把手带你走进Go语言之循环语句

    目录 概述 循环语句 方法一 方法二 方法三 break 关键字 continue 关键字 goto 关键字 [Golang]✔️走进 Go 语言✔️ 第六课 条件表达式 概述循环语句方法一方法二方法三break 关键字continue 关键字goto 关键字 概述 Golang 是一个跨平台的新生编程语言. 今天小白就带大家一起携手走进 Golang 的世界. (第 6 课) 循环语句 使用好循环语句可以帮助我们提升代码的简洁性, 提高代码效率. 方法一 格式: for init; condi

  • 手把手带你走进Go语言之类型转换

    目录 概述 数据类型转换 浮点转整数 字符串转整数 整数转字符串 概述 Golang 是一个跨平台的新生编程语言. 今天小白就带大家一起携手走进 Golang 的世界. 数据类型转换 数据类型转换可以帮助我们将一种数据类型的变量转换为另外一个种类型的变量. 格式: type_name(expression) 浮点转整数 浮点转整数是从高精度向低精度转换, 小数点后面会被舍弃. 例子: package main import "fmt" func main() { // 定义float

  • 手把手带你走进Go语言之条件表达式

    目录 概述 if 语句 switch 语句 概述 Golang 是一个跨平台的新生编程语言. 今天小白就带大家一起携手走进 Golang 的世界. (第 6 课) if 语句 通过一条或多条语句的执行结果来决定执行的代码块. 如图: 格式: if 布尔表达式 { /* 在布尔表达式为 true 时执行 */ } else if 布尔表达式 { /* 在布尔表达式为 true 时执行 */ } else if 布尔表达式 { /* 在布尔表达式为 true 时执行 */ } else { /* 上

  • C语言手把手带你掌握带头双向循环链表

    目录 前言 带头双向循环链表的结构 代码操作 前言 关于链表这一块,写了多篇博客,学习了顺序表.单链表.及其一些练习题 顺序表:传送门:顺序表 单链表:传送门:单链表1   链表2 链表OJ:传送门:链表OJ 今天,我又来水一水博客, 介绍关于双链表. 带头双向循环链表的结构 实际上,单链表也存在一个比较大的缺陷: 1.不能从后往前遍历 2.无法找到前驱 除了单链表之外,我们自然还有双向链表,我们要说的就是带头双向循环链表,简单理解为:带头结点的,有两个方向的.循环的.结构图如下: 结构虽然比较

  • 一文带你走进js-数据类型与数据结构的世界

    目录 2. 数据类型 2.1 原始类型(6 种原始类型,使用 typeof 运算符检查) 2.2 null 与 Object 3. 原始值 3.1 原始值基本概念 3.2 各类型说明 1. 什么叫动态类型 JavaScript 是一种弱类型或者说动态语言. 我们不用提前声明变量的类型,在程序运行过程中,类型会被自动确定. 这也意味着你可以使用同一个变量保存不同类型的数据 let a; // 初始不给任何类型 a = 11; // a此时是number类型 a = "二大爷"; // a

  • 一文带你走进js数据类型与数据结构的世界

    目录 1. 什么叫动态类型 2. 数据类型 2.1 原始类型(6 种原始类型,使用 typeof 运算符检查) 2.2 null 与 Object 2.3 typeof 操作符重点说明 3. 原始值 3.1 原始值基本概念 3.2 各类型说明 1. 什么叫动态类型 JavaScript 是一种弱类型或者说动态语言. 我们不用提前声明变量的类型,在程序运行过程中,类型会被自动确定. 这也意味着你可以使用同一个变量保存不同类型的数据 let a; // 初始不给任何类型 a = 11; // a此时

  • 带你了解Python语言的神奇世界

    目录 一.特点 二.语法 三.表达式 四.变量 五.缩进 六.数据类型 七.Python值得学习嘛? Python是世界上最流行的解释型编程语言之一. 由 Guido van Rossum 设计,作为"ABC"编程语言的继承者",于 1991 年首次发布.它是一种高级通用语言,其设计理念是通过使用缩进来强调代码的可读性.Python 的语言结构旨在帮助程序员为小型和大型项目编写逻辑代码. Python 是一种面向对象.解释型.弱类型的脚本语言,它也是一种功能强大而完善的通用型

随机推荐