Go基础笔记|青训营笔记

50 阅读3分钟

这是我参与「第五届青训营」伴学笔记创作活动的第一天

(本文没按模板来,是按照自己写博客的习惯来的)

 

一.go语言简介

Go语言起源于 2007 年,并在 2009 年正式对外发布。Go 是非常年轻的一门语言,它的主要目标是“兼具Python等动态语言的开发速度和 C/C++等编译型语言的性能与安全性”。

Go语言有时候被描述为“C 类似语言”,或者是“21 世纪的C语言”。

这一点在我实际上敲代码的时候有所体现。我不由自主想到了java和c。感觉像是java和c的简化版。

首先他在写代码之前要引入各种包,这和c的头文件有些类似。

func main()更像是一个简化了的java的主函数。

而我平时所写的更多的则是js,不得不感慨js自由很多。但同时限制也很多。

 

二.语法的区别

 

因为有过c、js、java基础,所以刚开始学习go语言觉得并不算难。这些语言有些重合的地方,在此就不列举了。

1.打印print

其实看到想要打印还需要引一个包的时候,有点诧异

import (
"fmt"
)
func main() {
fmt.Println("hello world")
}

好像……不怎么简洁来着?c++一句cout多快啊

但一对比java

 public static void main(String[ ] args){
 System.out.println("hello world");
 }

真简洁!!!

2.变量声明

变量声明这里其实像是js结合了c语言。

在js里,var可以万能声明,不过最后有时候要强制转化数据类型。

而go的声明方法是我第一次见到的,感觉比c和js要麻烦一点,但又很精准。

var a int

简化了以后更方便:

a := 1

 

3.切片

之前没接触过切片这种说法,所以在理解切片上花费了一点时间。 教程里讲的比较快,所以这部分笔记主要参考了C语言中文网。 随后发现切片的写法是这样的:

1.  var a = [3]int{1, 2, 3}
1.  fmt.Println(a, a[1:2])
//[1 2 3]  [2]

作为一个web前端,嗯,很眼熟。 js里就有个数组的操作方法叫做slice,不过我和我的学长很少叫他的中文名字,所以一直没有把切片和slice联系到一起。 js中的slice用法↓

var arr=[1,2,3,4,5]; 
arr.slice(-1);
//[5]

 

三.遇到的一些问题

在调试go语言控制台输出时,遇到了些小问题。

image.png

最开始我直接用vs的run code按钮运行,但输出的都是菱形的乱码。

'go' �����ڲ����ⲿ���Ҳ

可这并不涉及到编码问题,于是我猜想可能是我运行方式错误了。于是又按照视频上的方式复制相对路径到终端上,但它提示无法识别go这个指令。

搜索了以后发现需要把vs的以管理员身份运行勾选上。因为刚重装了一次vs,所以快捷方式的这项就被覆盖了。

勾选上以后果然可以运行了,不过复制相对路径、输入指令还是太麻烦了,还是用右上角的run code方便~

(话说为什么打两个回车才能换一次行)