第一部分:关于Go语言的介绍
1.1 go是一种静态类型的编译语言
1.2 优势
- 高性能、高并发: (其在设计之初就注重了高性能和高并发的特性。它的协程(goroutine)和通道(channel)机制使得并发编程变得更加简单且高效,能够充分利用多核处理器,提供了出色的并发性能。支持高并发,还不需要寻找第三方库来进行开发应用,只需使用标准库)
- 语言简单、学习曲线平缓: (类似于c语言,并对其进行大幅度简化。其语法设计简洁,舍弃了一些复杂的语言特性,使得学习曲线相对平缓。它具有清晰的语法规则,使初学者能够快速上手,同时也能帮助开发者编写易于维护和理解的代码。)
- 丰富的标准库: (稳定性,兼容性有保障、迭代快。其标准库提供了众多的功能模块,涵盖了网络、文件操作、并发、加密等方面,这使得开发者能够轻松构建各种类型的应用程序,减少了对第三方库的依赖。)
- 完善的工具链: (*其提供了强大且易于使用的工具链,包括编译器、格式化工具、测试工具等。这些工具的高度集成使得开发、构建和测试代码变得更加便捷。**)
- 静态链接:((其编译器会将程序的所有依赖打包成一个单独的可执行文件,这意味着您可以轻松地将应用程序部署到不同的环境中,而无需担心运行时的依赖问题。只需拷贝编译后的唯一一个可执行文件即可运行、体积小)
- 快速编译: (其编译速度非常快,这加速了代码的开发和迭代过程。这对于大型项目或需要频繁修改测试的应用程序来说尤其重要,几乎是最快的。)
- 跨平台: (其在设计时考虑了跨平台性能,因此它能够轻松地在不同的操作系统上编译和运行,无需太多的修改,Mac,Windows,Linux,Android,Ios,路由器等、交叉编译。)
- 垃圾回收: (其拥有先进的垃圾回收机制,java类似,它能够自动管理内存,减少了开发者因为内存管理而需要花费的精力。这使得开发者能够更专注于业务逻辑。)
- 各公司广泛应用(字节跳动,谷歌,脸书,腾讯,美团,七牛云,滴滴,B站等。)
第二部分:关于Go语言的入门
2.1 golang的开发环境搭建
2.2 开发环境-基于云的开发环境
2.3 基础语法速览
2.3.1 基础语法-Hello World
package main
import(
"fmt"
)
funcmain(){
fmt.Println("hello world")
}
其中
package main 为程序的入口包,入口文件,每个程序必备
import{ \\ } 这里用来导入标准库 如"fmt"为输入输出库 类似c++中的#include<iostream>
func main(){} 这里为主函数,类似于c++中的int main(){}
func main(){ fmt.Println("hello,world"} 即可在屏幕上输出hello,world
输出结果:
2.3.2 基础语法-其他
Go语言以其简洁和清晰的语法而闻名,适合初学者。以下是一些基础语法要点概括:
- 变量声明: 使用
var关键字声明变量,例如:var x int。 - 常量声明: 使用
const关键字声明常量,例如:const pi = 3.14。 - 函数定义: 使用
func关键字定义函数,例如:func add(a, b int) int { return a + b }。 - 条件语句: 使用
if-else进行条件判断,例如:if x > 0 { fmt.Println("Positive") } else { fmt.Println("Non-positive") }。 - 循环语句: 使用
for循环,例如:for i := 0; i < 5; i++ { fmt.Println(i) }。 - 切片和数组: Go提供灵活的切片和数组,例如:
var arr [5]int和slice := []int{1, 2, 3}。 - 结构体: 使用
type关键字定义结构体,例如:type Person struct { Name string; Age int }。 - 指针: 通过
&和*来处理指针,例如:x := 10; ptr := &x; fmt.Println(*ptr)。
详细的语法基础知识会放在下一篇笔记来写
总结:
Go语言写起来会比c++更加简短(每一个语句后面不需要加分号了),并且对于变量的声明也显得更加方便,无论是什么类型的变量都可以统一用:=来声明,输出时也很方便,可以直接使用fmt.Println(a)后面直接加变量名就可以完整输出了,数组的输出也是这样,不用像c++一样要用一个循环才能输出数组的所有元素,使用fmt.Printf("%v",a)中%v也时可以输出任意类型的,这些都比c语言中的printf()更加方便快捷,也更方便入手,入手Go语言的时候就是要格外注意它的命名语法和c++不同,相对来说还是很好学习。