zoukankan      html  css  js  c++  java
  • go语言基础知识

    go语言基础知识

    1.Go 文档查看

    1.1.命令行直接查看

    go doc strings.Split
    

    1.2.本地启动 web

    • 命令行启动文档程序,然后浏览器打开本地 9000 端口
    go doc -http=:9000
    

    2.GO 环境变量

    GOROOT

    • Go 语言安装根目录的路径,也就是 GO 语言的安装路径。例如:/usr/local/go

    GOPATH

    • Go 语言工作区目录的路径,是我们自己定义的工作空间
    Linux: $HOME/go
    Linux: /home/zhaoshuai/go
    
    Windows: %USERPROFILE%\go
    Windows: D:\workspace\go
    
    Mac: 
    

    GOBIN

    • GO 程序生成的可执行文件(executable file)路径

    实例演示

    # 配置全局环境变量
    vim /etc/profile
    ---------------------------------
    export GOROOT=/usr/local/go
    export GOPATH=/home/zhaoshuai/go
    export GOBIN=/home/zhaoshuai/go/bin
    export PATH=$GOROOT/bin:$PATH
    ---------------------------------
    source /etc/profile
    
    # 也可以配置用户环境变量
    vim ~/.bash_profile
    go version
    
    • 注意:
    go1.8 以下版本必须手动设置环境变量
    go1.8 及以后的版本会有默认环境变量
    

    3.Go 语言源码文件目录结构

    go 项目中不同项目源码文件一般以目录进行分割,也就是一个目录就代表一个项目
    go 项目中有两种源码文件,命令源码文件 与 库源码文件
    

    3.1.命令源码文件

    • 命令源码文件,一般也称为主程序
    1.命令源码文件必须以 package main 开头,且必须定义 main() 函数,所以定义了 main() 函数的源码文件就是命令源码文件
    2.命令源码文件的名称不必为 main.go,在编译时会生成同名的二进制可执行文件,该文件名可以自定义
    3.同一个项目中只能存在一个命令源码文件(main 函数),如果存在多个,则无法正常编译
    

    3.2.库源码文件

    1.库源码文件不必以 package main 开头
    2.如果是创建库项目,可以自定义库的包名
    

    4.Go 与其他编程语言的差异

    4.1.Go 退出返回值

    go 中 main 函数不支持任何返回值,可以通过 os.Exit 来返回状态
    

    4.2.main 函数不支持传入参数

    不支持: func main(arg []string) 的用法
    在程序中直接通过 os.Args 获取命令行参数
    

    4.3.Go 相关命名规范

    使用驼峰命名法
    源码文件建议以下划线分割: xxx_test.go
    定义方法名的单词或者缩写首字母需要大写:func Test(t &testing.T){}
    

    4.4.Go 变量命名

    赋值类型可以进行自动推断
    在一个赋值语句中可以对多个变量进行赋值
    

    5.Go 语言特性

    垃圾回收

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

    天然并发

    从语言层面支持并发,非常简单
    goroute,轻量级线程,创建成千上万个goroute成为可能
    基于CSP(Communicating Sequential Process)模型实现
    不需要考虑多和问题,并发问题
    
    nginx 并发支持多核处理,多核主机可以配置多个worker
    Redis 只支持单核处理,所以可以起多个实例
    

    6.go语言的标识符

    • 程序员定义的具有特殊意义的词
    例如:变量名、常量名、函数名等等,用于存储数据(内存空间)
    
    • Go语言中标识符由字母数字和_(下划线)组成,并且只能以字母和_开头
    例如:abc, _, _123, a123
    

    7.go语言的关键字

    • 指编程语言中预先定义好的具有特殊含义的标识符

    • 关键字和保留字都不建议用作变量名

    • 程序主体内只能以固定的 25 个关键字开头

    break        default      func         interface    select
    case         defer        go           map          struct
    chan         else         goto         package      switch
    const        fallthrough  if           range        type
    continue     for          import       return       var
    
    • Go 语言中有 37 个保留字
    Constants:  true  false  iota  nil
    Types:      int  int8  int16  int32  int64  
                uint  uint8  uint16  uint32  uint64  uintptr
                float32  float64  complex64  complex128
                bool  byte  rune  string  error
    Functions:  make  len  cap  new  append  copy  close  delete
                complex  real  imag
                panic  recover
    

    10.参考地址

    GO 官网: https://golang.google.cn/
    GO 语言规范: https://golang.google.cn/ref/spec
    GO 语言开发-命令详解: https://golang.google.cn/cmd/go/
    GO 语言开发-golang中国: https://golangtc.com/download
    GO 语言中文网: https://studygolang.com/pkgdoc
    GO 语言核心36讲-GO命令教程: https://github.com/hyper0x/go_command_tutorial
    
    本文版权归作者和博客园共有,如需转载请在文章页面给出原文链接,否则保留追究法律责任的权利。
  • 相关阅读:
    网易2019校招C++研发工程师笔试编程题
    牛客网 数串
    ps aux 状态介绍
    阿里在线测评解析
    Ubuntu 18.04安装 Sublime
    file '/grub/i386-pc/normal.mod' not found.解决方案
    解决Windows10与Ubuntu系统时间不一致问题
    进程与线程的区别
    大端模式和小端模式
    2016湖南省赛----G
  • 原文地址:https://www.cnblogs.com/tssc/p/15775191.html
Copyright © 2011-2022 走看看