Golang主要特征

作者: TZX_0710 | 来源:发表于2021-07-29 14:08 被阅读0次

Go语言的主要特征

思想

Less can be more 大道至简,小而蕴真 让事情变得很容易,让事情变得简单才难 深刻的工程文化

优点

  • 自带GC
  • 静态编译,编译好后,扔服务器直接运行
  • 简单的思想,没有继承、多态、类等
  • 丰富的库和详细的开发文档
  • 语法层支持并发,和拥有同步并发channel类型,使并发开发变得非常方便
  • 简洁的语法,提高开发效率,同时提高代码的阅读性和可维护性
  • 超级简单的交叉编译,仅需更改环境变量。

Go语言的主要特征

  • 自动立即回收
  • 更丰富的内置类型
  • 函数多返回值
  • 错误处理
  • 匿名函数和闭包
  • 类型和接口
  • 并发变成
  • 反射
  • 语言交互性

Golang文件名

所有的go源码都是以".go"结尾

Go语言命名

Go的函数、变量、常量、自定义类型、包的命名方式遵循一下规则

  • 首字符可以使unicode字符或者下划线
  • 剩余字符可以使unicode字符、下划线、数字
  • 字符长度不限
Go语言的关键字
case defer go map struct
chan else goto package switch
const fallthrough if range type
continue for import return var

Go语言保留字

    Constants:    true  false  iota  nil

    Types:    int  int8  int16  int32  int64  
              uint  uint8  uint16  uint32  uint64  uintptr
              float32  float64  complex128  complex64
              bool  byte  rune  string  error

    Functions:   make  len  cap  new  append  copy  close  delete
                 complex  real  imag
                 panic  recover

可见性

  • 声明在函数内部,使函数本地的值,类似private
  • 声明在函数外部,使对当前包可见
  • 声明在函数外部并且首字母大写是所有包可见的全局值如public

Go 语言声明

  • var(声明变量)
  • const(声明常量)
  • type(声明类型)
  • func(声明函数)

Go的程序时保存在多个.go文件当中,文件的第一行时package xxx声明,用来说明该文件属于哪个包,然后import 声明,接下来时类型、变量、常量、函数声明


Go项目构建以及编译

Go项目构建以及编译

  • 创建工程文件夹 goproject
  • 创建目录 src pkg bin
    • src源码相关文件
    • pkg包文件
    • bin相关文件
  • 在GOPATH种添加project路径。


    GOPATH
  • 如果工程中有自己的包 则在src下面新建包文件 如example
  • 在example 下面创建example.go 和 example_test.go
  • 编译调试包
  • go build example
  • go test example
  • go install example


    goproject文件

注: 在进行包编译的时候 可能会遇到如下问题

  1. package module is not in GOROOT (/usr/local/go/src/module)
    这是因为在GO111MODULE环境变量引起的。GO111MODULE 有三个值,off、on、auto,off 和 on 即关闭和开启,auto 则会根据当前目录下是否有 go.mod 文件来判断是否使用 modules 功能。无论使用哪一种方式都不会默认在GOPATH下面当中去查找文件。
    在使用 go module 时,将 GO111MODULE 全局环境变量设置为 off,在需要使用的时候再开启,避免在已有项目中意外引入 go module。

解决方案一

#关闭GO111MODULE
GO111MODULE="off"

解决方案2

使用go mod

#先初始化一个go.mod
go mod init test
#然后引入模块的时候采用test开头 比如
import "test/example"



  1. gopls requires a module at the root of your workspacevscode当中报错 该提示
    解决方案
配置该参数解决
 "gopls": {
        "experimentalWorkspaceModule": true,
    },

相关文章

网友评论

    本文标题:Golang主要特征

    本文链接:https://www.haomeiwen.com/subject/hsnemltx.html