• 【原创】go语言学习(一)


    一、go发展历史

    1.1诞生历史

    1、诞生于2006年1月下午15点4分5秒

    2、2009发布并正式开园

    3、2012年第一个正式版本Go1.0发布

    4、截止2019年10月8日,Go1.13.1

    1.2发展情况

    二、开发环境搭建

    2.1GO安装

    1、打开https://golang.org/dl/

    2、下载对应操作系统

    3、安装

    1、windows双击安装

    2、linux编译安装

    mkdir -p /var/opt/wwwroot/goblog
    配置环境变量
    
    vim /etc/profile
    export GOROOT=/usr/local/go
    export GOBIN=$GOROOT/bin
    export PATH=$PATH:$GOBIN
    export GOPATH=/var/opt/wwwroot/goblin
    source /etc/profile
    安装结束,验证
    
    go version
    
    go调试
    dlv debug --headless --listen=:8030 --api-version=2

    2.3git安装

    1、下载

     https://git-scm.com/downloads

     

    2、安装

    window双击安装

    linux

    $ yum install git
    $ yum install git-svn git-email gitk

    2.3IDE(GoLand)

    1、安装过程不再重复(详见pycharm安装)直接上验证

    注意:配置环境变量

     

     三、Golang目录结构介绍

    3.1目录结构划分

     

    3.2目录结构划分二

     

    三、第一个golang程序

    // 属于那个包,package包名和函数对应一一对应
    package main
    
    // 导入包
    import (
        "fmt"
    )
    
    func main() {
        // 打印fmt.Println
        fmt.Println("hello world")
        // 睡眠时间
        // time.Sleep(time.Second*10)
    }

    四、包的概念

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

    2、 包可以被其他包引⽤用

    3、 main包是⽤用来⽣生成可执⾏行行⽂文件,每个程序只有⼀一个main包

    4、 包的主要⽤用途是提⾼高代码的可复⽤用性

     五、Go 基本命令介绍

    1、基本命令

    a. go run 快速执⾏行行go⽂文件,就像执⾏行行脚本⼀一样
    b. go build 编译程序,⽣生成⼆二进制可执⾏行行⽂文件
    c. go install 安装可执⾏行行⽂文件到bin⽬目录

    2、 基本命令

    a. go test 执⾏行行单元测试或压⼒力力测试
    b. go env 显示go相关的环境变量量
    c. go fmt 格式化源代码

    3、 Go程序结构

    b. ⼀一个可执⾏行行程序只有⼀一个main包和⼀一个main函数
    c. main函数是程序的执⾏行行⼊入⼝口
    a. go源码按package进⾏行行组织,并且package要放到⾮非注释的第⼀一⾏行行

    4、注释

    b. 多⾏行行注释 /* */
    a. 单⾏行行注释 //

    六、golang语言特性

    1、 垃圾回收

    a. 内存⾃自动回收,再也不不需要开发⼈人员管理理内存
    b. 开发⼈人员专注业务实现,降低了了⼼心智负担
    c. 只需要new分配内存,不不需要释放

    2、天然并发

    a. 从语⾔言层⾯面⽀支持并发,⾮非常简单。只需要go⼀一下
    b. goroutine,轻量量级线程,创建成千上万个goroute成为可能

    func calc() {      
        //⼤大量量计算 
    } 
    func main() {
           go calc()
 
    }

    3、channel

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

    4、 多返回值

    a. ⼀一个函数返回多个值

    5、 编译型语⾔言

  • 相关阅读:
    Linux每天一个命令:cat
    python3 str或bytes转换函数
    python3获取指定目录内容的详细信息
    python3 简单进度条代码
    CNN review
    Hive -- 原理篇
    leetcode 4. 寻找两个正序数组的中位数 (二分)
    leetcode 680 验证回文字符串II (贪心)
    leetcode 面试题03 数组中重复的数字
    机器学习--SVM篇
  • 原文地址:https://www.cnblogs.com/wangshuyang/p/11637406.html
Copyright © 2020-2023  润新知