Go 语言入门指南:基础语法和常用特性解析 | 青训营

64 阅读4分钟

第一部分:关于Go语言的介绍

1.1 go是一种静态类型的编译语言

1.2 优势

  1. 高性能、高并发: (其在设计之初就注重了高性能和高并发的特性。它的协程(goroutine)和通道(channel)机制使得并发编程变得更加简单且高效,能够充分利用多核处理器,提供了出色的并发性能。支持高并发,还不需要寻找第三方库来进行开发应用,只需使用标准库
  2. 语言简单、学习曲线平缓: (类似于c语言,并对其进行大幅度简化。其语法设计简洁,舍弃了一些复杂的语言特性,使得学习曲线相对平缓。它具有清晰的语法规则,使初学者能够快速上手,同时也能帮助开发者编写易于维护和理解的代码。
  3. 丰富的标准库: (稳定性,兼容性有保障、迭代快。其标准库提供了众多的功能模块,涵盖了网络、文件操作、并发、加密等方面,这使得开发者能够轻松构建各种类型的应用程序,减少了对第三方库的依赖。
  4. 完善的工具链: (*其提供了强大且易于使用的工具链,包括编译器、格式化工具、测试工具等。这些工具的高度集成使得开发、构建和测试代码变得更加便捷。**)
  5. 静态链接:((其编译器会将程序的所有依赖打包成一个单独的可执行文件,这意味着您可以轻松地将应用程序部署到不同的环境中,而无需担心运行时的依赖问题。只需拷贝编译后的唯一一个可执行文件即可运行、体积小
  6. 快速编译: (其编译速度非常快,这加速了代码的开发和迭代过程。这对于大型项目或需要频繁修改测试的应用程序来说尤其重要,几乎是最快的。
  7. 跨平台: (其在设计时考虑了跨平台性能,因此它能够轻松地在不同的操作系统上编译和运行,无需太多的修改,Mac,Windows,Linux,Android,Ios,路由器等、交叉编译。
  8. 垃圾回收: (其拥有先进的垃圾回收机制,java类似,它能够自动管理内存,减少了开发者因为内存管理而需要花费的精力。这使得开发者能够更专注于业务逻辑。
  9. 各公司广泛应用字节跳动,谷歌,脸书,腾讯,美团,七牛云,滴滴,B站等。

第二部分:关于Go语言的入门

2.1 golang的开发环境搭建

  1. go.dev/
  2. studygolang.com/dl
  3. goproxy.cn/

2.2 开发环境-基于云的开发环境

  1. 长链接:gitpod.io/#github.com…
  2. 短链接:hi-hi.cn/gitpod
  3. 工作台 - 1024Code

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

输出结果:

屏幕截图 2023-08-23 230522.png

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]intslice := []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++不同,相对来说还是很好学习。