zoukankan      html  css  js  c++  java
  • Go 入门

     1.开发环境搭建

      1. 安装Go

         打开网址https://golang.org/dl/

    2.IDE搭建(vscode)

    a.打开网址:https://code.visualstudio.com

    b. 根据操作系统选择对应的安装包

    c. 点击安装包进行安装(linux直接解压)

    3.使用VS Code 新建Go项目

    a. 新建目录/home/user/project/go/src/listen1

    b. 用vscode打开目录/home/user/project/go/src/listen1

    c. 右键新建文件hello.go,保存

    d. vscode会提示你安装一些go的工具,我们点击install all


    3. 调试工具delve安装
    a.打开网址:
    https://github.com/derekparker/delve/tree/master/Documentation/installation

    b. mac: brew install go-delve/delve/delve

    c. linux&windows: go get github.com/derekparker/delve/cmd/dlv


    golang语言特性

    1. 垃圾回收

    a.内存自动回收,再也不需要开发人员管理内存

    b.开发人员专注业务实现,降低了心智负担

    只需要new分配内存,不需要释放

    golang语言特性

    2. 天然并发

    从语言层面支持并发,非常简单

    goroute,轻量级线程,创建成千上万个goroute成为可能

    基于CSP(Communicating Sequential Process)模型实现

    func main() {
    go fmt.Println(“hello")
    }

    3. channel

    管道,类似unix/linux中的pipe

    b. 多个goroute之间通过channel进行通信

    支持任何类型
    func main() {
    pipe := make(chan int,3)
    pipe <- 1
    pipe <- 2
    }

    4. 多返回值

    一个函数返回多个值

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


    第一个golang程序

    1. hello world,在listen1目录下新建hello.go

    package main

    import(
    “fmt”
    )

    func main() {
    fmt.Println(“hello world”)
    }


    包的概念


    1. 和python一样,把相同功能的代码放到一个目录,称之为包

    2. 包可以被其他包引用

    3. main包是用来生成可执行文件,每个程序只有一个main包

    4. 包的主要用途是提高代码的可复用性


    包的实战

    1. 在listen1目录下新建calc目录

    2. 在calc目录下新建calc.go

    package calc

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


    1. 修改hello.go代码,如下


    package main

    import(
    “fmt”
    “calc”
    )

    func main() {
    sum := calc.Add(3,5)
    fmt.Println(“hello world,%d”,sum)
    }

  • 相关阅读:
    Android 仿iPhone ListView拖动排序 按钮联动删除显示隐藏
    START WITH CONNECT BY PRIOR 链表查询
    pdf转图片
    HttpClient支持使用代理服务器以及身份认证
    easyui 1.3.3 中combotree post传参问题
    quartz Cron表达式
    lucene分词多种方法
    secureCRT命令大全
    tbschedule
    mysql 查询表
  • 原文地址:https://www.cnblogs.com/wangcongxing/p/11842048.html
Copyright © 2011-2022 走看看