Go语言基础 -- Go语言的特点和注意事项

1. 语言的特点

Go语言保证了技能达到静态编译语言的安全和性能,又达到了动态语言开发维护的高效率,使用一个表达式来形容Go语言,Go=C+Python

  1. 从C语言继承了很多理念,包括表达式语法,控制结构,基础数据类型,调用参数传值,指针等等,也保留了和C语言一样的编译执行方式及弱化的指针,

  2. 引入包的概念,用于组织程序结构,Go语言的一个文件都要归属于一个包,而不是单独存在

  3. 垃圾回收机制,内存自动回收,不需开发人员管理

  4. 天然并发

    1. 从语言层面支持并发,实现简单
    2. goroutine,轻量级线程,可是心打冰法处理,高效利用多核
    3. 基于CPS并发模型(Communicating Sequential Process)实现
    4. 吸收了管道通信机制,形成Go语言特有的管道channel,通过管道channel,可以实现不同的goroutine之间的相互通信
  5. 函数返回多个值

    package main //一个go文件需要在一个包中
    
    
    func sayOk(n1 int,n2 int)(int,int){
        sum := n1 + n2 //go语句后面,编译器会自动带分好
        sub := n1 - n2
        return sum,sub
    }
    
  6. 新的创新,比如切片slice(动态数组),延时执行defer等

2. 开发目录结构


说明:

  1. package main 表示hello.go 文件所在的包是main,在go中,每个文件必须归属一个包
  2. bin 目录存放编译后的二进制文件,可以使用go build 文件名 对该go文件进行编译,生成exe文件,可以指定生成可执行文件的文件名 go build -o xxx.exe hello.go
  3. go run 可以直接运行hello.go程序(类似执行一个脚本文件的形式)
  4. linux环境下,在运行可执行程序的时候是以./文件名方式执行

3. 执行流程分析


说明两种执行流程的方式区别

  1. 如果先编译生成了可执行文件,那么可以将可执行文件拷贝到go开发环境的机器上仍然可以运行
  2. 如果直接用go run go源代码,那么如果要在另一个机器上这么运行,也需要go开发环境,否则无法执行
  3. 在编译时,编译器会将程序运行以来的库文件包含在可执行文件中,所以,可执行文件变大了很多

编译

编译就是go源文件通过编译器将其编译成机器可以识别的二进制码文件

运行

执行二进制文件

4. 开发注意事项

  1. Go源文件以.go为扩展名
  2. Go应用程序的执行入口是main()函数
  3. Go语言严格区分大小写
  4. Go方法由一条条语句构成,每个语句后不需要分号(Go语言会在每行后自动加分号),这也提现出Golang的简洁性
  5. Go编译器是一行一行进行编译的,因此我们一行就写一条语句,不能把多条语句写在同一行,否则报错
  6. Go语言定义的变量或者import的包如果没有使用到,代码不能编译通过
  7. 大括号都是成对出现的,缺一不可
posted @ 2021-08-24 11:09  河图s  阅读(206)  评论(0)    收藏  举报