GoFaster

V1

2022/08/19阅读:18主题:默认主题

Python转Go学习之路篇0-基础知识

1 Go语言 简介

  • 多核服务器成为主流,当前编程语言对并发的支持不是很好,不能嗯好的发挥多核CPU的威力
  • 程序规模越来越大、但是编译速度越来越慢
  • 现有编程语言设计复杂

Go语言应运而生,即为了解决当下编程语言对并发支持不友好、编译速度慢、编程复杂这三个问题二诞生的。

2 Go语言特性

语言特性详解

  • 语言组织:语言语法基本概念(标识符、关键字、控制结构等等)
  • 类型系统:语言类型(动静)、强弱类型、数据类型、
  • 抽象特性:函数、面向对象、多态、接口
  • 元编程特性:泛型、反射
  • 运行和跨平台语言特性:编译模式、运行模式、内存管理、并发支持、交叉编译、跨平台
  • 语言软实力特性:社区、库、框架、规范和兼容性

3 学习新语言

  • 两个过程

0. 利用已经掌握的语言,和新语言进行语法对比,梳理差异点,建立知识链接,从而快速的掌握新语言语法

1. 对比新旧语言语法,详细学习新语言的语法特性,语法特性决定了语言的表现力和编程范式,掌握新语言的语言特性是快速学习新语言的一条捷径

4 初识Go程序

hello.go


package main # 定义包名,go程序头部必须有一个包声明语句,GO通过包来管理命名空间

import "fmt" # 引入外部包

func main() { # func关键字声明一个函数,main函数,main代表GO程序入口函数
 fmt.Println("Hello, World!"# 调用引入包的Printf函数,函数实参是一个字符串字面量,即打印一句话,注意:必须要双引号
}


go源代码解读

  • 源程序以.go为后缀

  • 源程序默认UTF8编码

  • 标识符区分大小写

  • 语句结尾的分号可省略

  • 函数以func开头,函数体开头的"{"必须在函数头所在行的尾部,不能单独一行

  • 字符串字面量使用双引号括起来

  • 调用包里面的方法需要使用"."访问符

  • main函数所在的包名必须是main

5 Go语言词法单元

  1. token

  2. 标识符

  3. 操作符

  4. 字面常量

5.0 token解释

token 是构成源程序的基本不可分割的单元。编译器编译源程序第一步就是将源程序分割成一个个独立的token,这个过程就是词法分析

GO语言的token可以分为关键字、标识符、操作符、分隔符、字面常量等

GO语言编译过程中token怎么分割的呢? 包括操作符、纯分隔符

  • 操作符

sum:=a+b

这个简单的语句包含了多个token,操作符就是天然的分隔符,同时自身也是一个token

  • 纯分隔符

不具备任何词法含义,只作为其他token的分割功能

空格、制表符、换行符、回车符等

接下来介绍各个类别的token,在介绍token类别之前,先介绍一下标识符

5.1 标识符

编程语言的标识符用来标识变量、类型、常量等语法对象的符号名称,在编译过程中的词法分析时作为一个token存在。

编程语言标识符总体分为两类:1.语言设计者预留的标识符、2.编程者自定义的标识符

用户自定义标识符不应该使用设计者预留的预留标识符,避免产生代码歧义和影响可读性

GO的标识符规则

  • 开头必须字符或下划线后面跟任意多个字符、数字、下划线、并且区分大小写
  • 避开预留标识符名称

GO标识符类型包括

  • 关键字
  • 内置数据类型标识符
  • 内置函数
  • 空白标识符

语言设计者预留标识符

关键字:这些预留标识符一般用来控制程序结构,每个关键字都代表不同语义的语法糖

  • 引导程序结构关键字
  • 声明复合数据结构关键字
  • 控制程序结构关键字

内置数据类型标识符:内置预声明数据类型标识符

GO作为一种强类型静态编译语言,在定义常量和变量时,需要显式的指出数据类型

内置函数:内置函数作为高级语言的语法糖

常量值标识符:true、false、iota、nil

空白标识符:_ ,用来声明一个匿名的变量,通常被用作展位,比如忽略函数多个返回值中的一个和强制编译器做类型检查

5.2 操作符

操作符就是语言所使用的符号集合,包括运算符、显式的分隔符、以及其他语言辅助符号,自身就作为一个token,具备词法含有,同时自身也是分割其他token的分隔符。纯分隔符仅仅起到分隔token的功能:空格、制表符、回车、换行

  • 算数分隔符
  • 位运算符
  • 赋值和赋值复核运算符
  • 比较运算符
  • 括号
  • 逻辑运算符
  • 自增、自减操作符
  • 其他 : , ; . ... <-
5.3 字面常量

编程语言源程序中标识固定值的符号叫做字面常量,简称字面量。

字面量可以出现在两个位置:一是用域常量和变量的初始化,二是用在表达式里或者函数调用的实参

  • 整型字面量
  • 浮点型字面量
  • 复数类型字面量
  • 字符型字面量
  • 字符串字面量

篇0总结

GO源程序基本构成

  • 关键字引导程序的基本结构
  • 内置类型标识符辅助 声明变量和常量
  • 字面量辅助变量和常量的初始化
  • 分隔符帮助GO编译器识别各个token
  • 操作符和变量、关键字一起构成丰富的词法单元

分类:

后端

标签:

Python

作者介绍

GoFaster
V1