这是我参与「第五届青训营」伴学笔记创作活动的第一天
(本文没按模板来,是按照自己写博客的习惯来的)
一.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语言控制台输出时,遇到了些小问题。
最开始我直接用vs的run code按钮运行,但输出的都是菱形的乱码。
'go' �����ڲ����ⲿ���Ҳ
可这并不涉及到编码问题,于是我猜想可能是我运行方式错误了。于是又按照视频上的方式复制相对路径到终端上,但它提示无法识别go这个指令。
搜索了以后发现需要把vs的以管理员身份运行勾选上。因为刚重装了一次vs,所以快捷方式的这项就被覆盖了。
勾选上以后果然可以运行了,不过复制相对路径、输入指令还是太麻烦了,还是用右上角的run code方便~
(话说为什么打两个回车才能换一次行)