• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

go语言环境搭建

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

1、windows环境搭建
  1、安装go
  2、安装goland开发工具包

2、test.go

/* 可执行文件,包名必须是main */
package main
/* fmt 字符串格式化的包 */
import "fmt"

/*main入口函数*/
func main() {
fmt.Printf("Hello, world" )

}
View Code

3、go函数定义

//go函数定义
func add(a int ,b int) int {
var sum int //var表示变量,sum变量名称,int表示变量类型
sum = a+b
return sum
}
View Code

4、go语言特性
  1、垃圾回收
    a、内存自动回收,再也不需要开发人员管理内存
    b、开发人员专注业务实现,降低了心智负担
    c、只需要new分配内存,不需要释放
  2、天然并发
    a、从语言层面支持并发,非常拣单
    b、goroute,轻量级线程、创建成千上万个goroute成为可能
    c、基于CSP(Communicating Sequential Process)模型实现

    案例:(使用关键字go)

    func test_print(a int) {
      fmt.Println(a)
    }
    for i:=0;i<100;i++{
      go test_print(i)
    }

  3、channel
    a、管道,类似nuix/linux中的pipe
    b、多个goroute之间通过channel进行通信
    c、支持任何类型

    /*make关键字,分配内存空间*/
    func main(){
      pipe:=make(chan int ,3) //定义一个pipe变量,管道容量为3,管道类似于队列
      pipe <- 1 //将1放入管道
      pipe <- 2
      fmt.Println("pipe长度:",len(pipe))
      var t1 int
      t1 =<- pipe //从管道取值放入变量t1中
      fmt.Println(t1)
    }

  4、多返回值
    a、一个函数返回多个值

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

5、包的概念(go语言不需要担心编码问题,都默认为utf8)

  1、和python一样,把相同的功能代码放在一个目录,称之为包
  2、包可以被其他包引用
  3、main包是用来生成执行文件,每个程序只有一个main包
  4、包的主要用途是提高代码的可复用性


6、变量定义两种方式
  方式1:
    var sum int //var表示变量,sum变量名称,int表示变量类型
    sum = 0
  方式二:
    sum:=0

7、函数多返回值   (注意占位符"_"使用)

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

func  main1()  {
    sum ,avg:=calc(200,300)
    fmt.Println("sum=",sum,",","avg=",avg)
    a ,_:=calc(200,300) //_表示不取返回值
    fmt.Println("sum=",a,)
}

 


FAQ:

问题1:

# command-line-arguments
src\lesson-one\test.go:36: undefined: test_goroute

一个文件调用另一个文件的函数,必须两个文件都被编译为二进制文件,才能执行,否则报错
为了解决这种问题,可以执行整个包

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
[日常] Go语言圣经-并发的非阻塞缓存发布时间:2022-07-10
下一篇:
gopackage依赖图自动生成发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap