golang介绍和环境搭建

本文介绍了Go语言的基础知识,包括垃圾回收、并发、channel和包管理。同时,详细阐述了在Mac、Linux和Windows系统上的安装步骤,以及如何配置环境变量。文章还提到了开发工具Goland和VSCode的使用,以及go module的介绍。
摘要由CSDN通过智能技术生成

一、Goland语言介绍

Go 和 C语言、C++、Python、Java 等一样都是编程语言。学习任何一门编程语言本质上都分3步走:

  • 第一步:安装 解释器 或 编译器
  • 第二步:学相关编程语言语法,然后写代码。
  • 第三步:用已安装解释器 或 编译器 去运行自己写的代码,这样代码就会去完成我们编写的功能了。

Go是编译型语言,所以我们一般称Go安装是编译器

Go是开源且跨平台的一门编程语言,所以他支持window、linux、mac操作系统,同时也意味着我们可以在各种系统中安装Go的编译器。

1、垃圾回收机制

  1. 内存自动回收,再也不需要开发人员管理内存。
  2. 开发人员专注业务实现,降低了心智负担。
  3. 只需要new分配内存,不需要释放。

2、天然并发

  1. 从语言层面支持并发,非常简单。
  2. goroute,轻量级线程,创建成千上万个goroute成为可能。
  3. 基于CSP(Communicating Sequential Process)模型实现。
func main() {
    go fmt.Println("Hello")
}

3、channel

  1. 管道,类似 unix/linux 操作系统的 pipe
  2. 多个 goroute 之间通过 channel 进行通信
  3. 支持任何类型
package main

import "fmt"

func test_pipe() {
	pipe := make(chan int, 3) // 创建一个管道,管道的容量为3
	pipe <- 1                 // 向管道中写入一个数据
	pipe <- 2                 // 向管道中写入一个数据
	pipe <- 3                 // 向管道中写入一个数据

	pipe <- 4 // 向管道中写入一个数据,管道已经满了,会报错

	fmt.Println(len(pipe))
}
"""
插入三个时输出结果:
PS D:\GolangProjects\src\crm> go run app.go pipe.go
3

插入四个时输出结果:
PS D:\GolangProjects\src\crm> go run app.go pipe.go
fatal error: all goroutines are asleep - deadlock!
"""

4、多返回值

一个函数返回多个值:

// calc.go
package main

func calc(a int, b int) (int, int) {
	c := a + b
	d := (a + b) / 2
	return c, d
}

// app.go
func main() {
	sum, avg := calc(200, 300)
	fmt.Println("sum=", sum, "avg=", avg)
}

// 执行程序
PS D:\GolangProjects\src\crm> go run app.go calc.go
sum= 500 avg= 250

5、包

(1)包概念
  1. 和 python 一样,把相同功能的代码放到一个文件夹中,这个文件夹就是一个包。
    • 包名和文件夹名一致。
    • 包名不能包含 - ,必须是小写字母。
    • 包名不能和系统包名重复,比如 fmt,io,os 等。
    • 包名不能和自定义包名重复,比如 luffycity,luffy 等。
  2. 包可以被其他包导入,导入的包必须被使用,否则编译不通过。
  3. main 包是特殊的包,它包含了可执行程序的入口函数 main(),main 包的包名必须为 main。
  4. 包的主要作用是封装代码,提高代码的可重用性。
(2)关于包的分类
  • main包,如果是main包,则必须写一个main函数,此函数就是项目的入口(main主函数)。 编译生成的就是一个可执行文件。
  • 非main包,用来将代码进行分类,分别放在不同的包和文件中。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值