GO语言编程---GO到底能干嘛

下载和安装GO语言

  1. 下载地址是:https://studygolang.com/dl
    在这里插入图片描述
    因为我的本地是windows的环境,所以直接点击下载就行。
    (1)这里一直下一步就行,选择好合适的安装路径就行
    (2)这里安装完毕后会自动将本地的环境变量配置完毕
    (3)打开终端输入go env验证是否安装完毕
    在这里插入图片描述
    出现上面的情况的时候,表示go已经安装完毕。现在就可以进行go的开发了。

go的运行ide安装

我们这里的ide选用的是Visual Studio Code

  1. 下载地址:
链接:https://pan.baidu.com/s/187R4EjLjIQ9sMxbMaRIsrQ 
提取码:jua2 
复制这段内容后打开百度网盘手机App,操作更方便哦
  1. 安装完毕后,选择安装go的插件
    在这里插入图片描述
    输入go进行选择,并下载
    在这里插入图片描述
  2. 安装好之后,会有提示安装部分插件,点击下载安装
  3. 安装debug调试模式,在dos框中输入
go get github.com/derekparker/delve/cmd/dlv

golang语言的特性

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

  2. 天然并发
    (1)从语言层面支持并发,非常简单
    (2)goroute,轻量级线程,即协程,可以创建成千上万个goroute,不会像线程一样创建过多而造成资源的浪费,效率的低下。
    (3)基于CSP模型实现

并发的支持很简单,只需要调用方法的时候加上go关键字就行

eg,

func main(){
	go fmt.Println("hello")
}
  1. channel
    (1)管道,类似于unix/linux中的pipe
    (2)多个goroute之间是通过channel进行通信的
    (3)支持任何的类型
func main(){
	pipe := make(chan int, 3)
	pipe <- 1
	pipe <- 2
}
  1. 一个函数可以返回多个值
    (1)一个函数可以返回多个值,如同python一样
func calc(a int, b int) (int, int){
	sum := a+b
	avg := (a+b)/2
	return sum, avg
}
  1. 包的概念
    (1)和python一样,把相同的代码放到一个目录,称之为包
    (2)包可以被其他的包引用
    (3)main包是用来执行可执行文件的,每个程序只有一个main包,这个不同于java,java是每一个类下都可以有一个main,而go是每一个包里面只有一个main
    (4)包的主要途径是提高代码的可复用性

eg. 在main包中引入calc包中的代码:

package calc

func Add(a int, b int) int {
	return a + b
}

package main

import (
	"fmt"
	"calc"
)

func main(){
	sum := calc.Add(3, 5)
	fmt.Println("hello world: ", sum)
}

注意事项

这里有几点需要关注一下,后续会进行更详细的讲解:

  1. goroute可以无限制,而java中的线程是必须控制数量的
  2. goroute依赖于主线程,与java不同,go中是主线程结束,goroute就结束了
  3. csp = goroute + channel
  4. 一个包的下面只能有一个main函数,而java是一个类下面就可以有一个main
  5. pipe的定义: pipe := make(chan int, 3)
    (1)make 如同new,分配空间
    (2)chan表示一个管道,其管道也需要指明类型 如:chan int
    (3)最后的参数表示该管道的大小
  6. go中的管道,当存放的数据大于了管道长度,则会发生阻塞,当管道中没有数据的时候,从管道中取数据也会阻塞
  7. pipe的管道是类似队列,存放的顺序是先进先出。
  8. 首字母变量大写,权限相当于public可以在别的包中对其进行访问;
  9. go中会自动识别死锁,若出现死锁,go会报错,不会继续执行
  10. 当我们的函数返回值是多个的时候,但是我们只需要一个返回值,在go中定义的变量没有被使用是会报错的,所以这时候我们应该使用_(下划线)来对返回值进行忽略,如 a, _ = sum(a,b)
  11. go的编码永远都是UTF-8
  12. go编译完成后永远只有一个可执行文件,不像java还会将其他的依赖变为class文件
  13. go会默认在环境变量配置的 G O P A T H 下 面 找 , 默 认 会 在 {GOPATH}下面找,默认会在 GOPATH{GOPATH} 下的src目录下找,所以导入的时候,根据自己的环境变量导入其全路径。
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值