2023清华大学go学习笔记


简介

go(又称Golang)

应用领域:
go服务器
go分布式/云计算
区块链工程师

360开源的日志搜索系统 qihoo360/poseidon

一、go简介

  1. 开发团队:
    罗伯特·格瑞史莫(Robert Griesemer),罗勃派克(Rob) Pike)及肯·汤曾逊(Ken Thompson)于2007年9月开始设计Go,稍后lan LanceTaylor、Russ Cox0入项目.
    Rcoect CicepeeneR9D Pae
  2. Go语言发展简史
    2007年,谷欧工程师Rob Pike,Ken Thompson和Robert Grisemer开始设计一门全新的语言,这是Go语言的最初原型.2009年11月,Google将Go语言以开故源代码的方式向全球发布.
    2015年8月,Go1.5版发布,本次更新中移除了"最后残余的c代码”2017年2月,Go语言Go 1.8版发布。
    2017年8月,Go语言Go 1.9版发布。2018年2月,Go语言Go1.10版发布.
    2018年8月,Go语言Go1.11版发布。
    2019年2月,Go语言Go1.12版发布.
    2019年9月,Go语言Go1.13版发布.
    2020年2月,Go语言Go1.14版发布。
    2020年8月,Go语言Go1.15版发布。_一直选代

工具介绍:

  1. visual studio code,Microsoft产品(简称VSCode);一个运行于Mac Os、Wndows和Linux之上的,默认提供Go语言的语法高亮,安装Go语言劫件,还可以支持智能提示,编译运行等功能.
  2. Sublime Text,可以免费使用,默认也支持Go代码语法高亮只是保存次数达到一定数量之后就会提示是否购买,点击取消继续用,和正式注册版本没有任何区别
  3. Vim: Vim是从vi发展出来的一个文本编辑器,代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用4)Emacs : Emacs传说中的神器,她不仅仅是一个偏辑器,因为功能强大,可称它为集成开发环境
    5)Eclipse IDE工具,开源免费,并提供GoEclipse播件
  4. Lite1DE,LitelDE是一款专门为Go语言开发的跨平台轻量级集成开发环境(IDE),是中国人开发的.7) JetBrains公司的产品:PhpStrom、webStrom和PyCharm等IDE工具,都需要安装Go插件。
    【2] vSCode的安装:
    下就vscode安装软性
    https://code.visualstudio.com/download

开发环境搭建

【1】搭建Go开发环境-安装和配置SDK基本介绍;
1 SDKE全格ASoftware Devetopment雹&警寺兹莽于晶窖zA)
【2] sDK下载
1)Go语言的官网为: golang.org ,无法访问,需要翻墙.
2) SDK下裁地址;Golang中文社区: https://studygolang.com/dl (1.15.6版本)外网下载
【3】安装SDK:
清注意:安装路径不要有中文或者特殊符号如空格等
SDK安装目录建议:一般我安装在d:/golang安装时,基本上是俊瓜式安装,解压就可以使用

dos命令
清屏:cls
dir 显示详细信息
c: 切换盘符
md 创建目录
rd 删除目录
copy 1.txt a\1.txt 复制文件
https://dl.google.com/go/g01.15.6.windows-amd64.zip

环境变量——path——新增
D:\golang_sdk\go\bin

在这里插入图片描述

package main  //声明整个文件所在的包,每个go文件必须有归属的包
import "fmt"  //引入程序要用的包
func main(){
   
    
     //main 程序的入口
	fmt.Println("HELLO guiltyfet")  //控制台打印输出一句话,双引号的内容原样输出
}

D:\goproject\src\gocode\xm1\main>go build test1.go

command-line-arguments

.\test1.go:4:2: cannot refer to unexported name fmt.println
.\test1.go:4:2: undefined: fmt.println

将小写改成大写的就可以了 “p"→”P“

在这里插入图片描述

问题

D:\goproject\src\gocode\xm1\main>go build test1.go
command-line-arguments
.\test1.go:3:6: func main must have no arguments and no return values
.\test1.go:3:6: missing function body
.\test1.go:4:2: cannot refer to unexported name fmt.printIn
.\test1.go:4:13: syntax error: unexpected (, expecting comma or )
.\test1.go:6:1: syntax error: non-declaration statement outside function body

三点错误{
   
    
    }
小p变大p
println     Ln

二、基本变量与类型

变量与数据类型

[1】交量的引入:一个程序就是一个世界
不论是使用哪种高级程序语言编写程序变量都是其程序的甚本组成单位,[2】变量的介绍:
安量相当于内存中一个数据存储空间的表示
I
【3】姿量的使用步骤;
1.声明
2赋值
3.使用

设置——取消勾选,展示层级
在这里插入图片描述问题

解决问题

go build main.go 运行时报错如下:
main.go:1:1: expected ‘package’, found ‘EOF’

解决:ctrl+s保存下就可以了

#command-line-arguments
.\main.go:4:6: missing function body
.\main.go:4:10: invalid character U+FF08 ‘(’ in identifier
.\main.go:4:13: invalid character U+FF09 ‘)’ in identifier
.\main.go:4:16: syntax error: unexpected {, expecting (
.\main.go:6:2: syntax error: unexpected var, expecting )
.\main.go:13:1: syntax error: non-declaration statement outside function body
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

package main
import "fmt"

func main(){
   
    
    
	//变量的声明s
	var age int
	//变量的赋值
    age = 18
	//变量的使用
	fmt.Println("age = ",age);
	
	//声明和复制可以合成一句,
    var age2 int = 19
	fmt.Println("age2 = ",age2);
	
	//var age int =20;
    //fmt.Println("age = ",age);

    /*变量的重复定义会报错;
    //.\main.go:16:6: age redeclared in this block
    //previous declaration at .\main.go:6:6
    //.\main.go:17:1: invalid character U+00A0 in identifier
    //.\main.go:17:4: syntax error: unexpected   at end of statement
	*/

	//不可以在赋值的时候给与不匹配的类型
	var num int =12.5
	fmt.Println("num = ",num);
}

变量2

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(S】八进转换为十六进制
把十进制当做一个中转站:八进制—》十进制—》十六进制
实际上根本不用自己转换这么麻烦:│
在这里插入图片描述

源码、补码、反码的知识

整数类型

在这里插入图片描述
写代码时注意使用英文的括号与花括号

在这里插入图片描述

在这里插入图片描述

package main
import "fmt"

func main(){
   
    
    
	//定义一个整数类型
	var num1 int8 = 120
	fmt.Println(num1)
	
	var num2 uint8 = 200
	fmt.Println(num2)
	
	var num3 = 20
	//printf函数的作用,格式化,把num3的类型填充到%T的位置上
	fmt.Printf("num3的类型是,%t" ,num3)

}


在这里插入图片描述

报错uint8

在这里插入图片描述
D:\goproject\src\gocode\xm1\unit2\demo3>go run main.go
command-line-arguments
.\main.go:9:11: undefined: unit

浮点型

在这里插入图片描述

PS:底层存储空间和操作系统无关
PS:浮点类型底层存储:符号位+指数位+尾数位,所以尾数位只是存了一个大概,很可能会出现精度的损失。

package main
import "fmt"

func main(){
   
    
    
	//定义浮点类型的数据:
	var num1 float32 = 3.14
	fmt.Println(num1)
	//可以表述正浮点数,也可以表示负的浮点数
	var num2 float32 = -3.14
	fmt.Println(num2)
	//浮点数可以用十进制表示形式,也可以用科学计数法表示形式  E大写小写都可以的
	var num3 float32 = 314E-2
    fmt.Println(num3)
	var num4 float32 = 314E-2
	fmt

猜你喜欢

转载自blog.csdn.net/weixin_51387754/article/details/130364506#comments_26533557