[ Golang编程基础1 | 青训营笔记]

115 阅读3分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 2 天

参考资料:

【后端专场 学习资料一】第五届字节跳动青训营 - 掘金 (juejin.cn)

前言 · Go语言圣经 (studygolang.com)

‍⁢⁤‌⁣‬‌⁡⁡⁣⁤‬‌⁣⁣⁡⁣‍‌⁡⁣⁢⁡‬⁡⁣⁡⁤⁡‌⁢⁤‍⁢Go 语言上手 - 基础语法 .pptx - 飞书云文档 (feishu.cn)

Go程序基本结构

  1. 源码文件

    • Go的源码文件是以.go为后缀名存储在计算机中
    • 源码文件的文件名均为小写字母组成
    • 如果源码文件的文件名含有多个部分,则用下划线_对其进行分割,例如:my_demo.go
    • 源码文件的文件名不包含空格或其他特殊字
    • 一个源文件可以包含任意多行的代码,Go 本身没有对源文件的大小进行限制
  2. 包的概念

  • 包是Go语言结构化代码采用的方式,

  • 每个 Go 文件都属于且仅属于一个包

  • 一个包可以由许多以.go为扩展名的源文件组成,因此源码文件的文件名和包名一般来说都是不相同的

  • 必须在源文件中非注释的第一行指明这个文件属于哪个包,如:package main

  • package main表示一个可独立执行的程序,每个Go应用程序都有且仅包含一个名为main的包

  • 所有的包名都应该使用小写字母

  • 每个文件目录应只包含一个包

  • Go 中的包模型采用了显式依赖关系的机制来达到快速编译的目的,编译器会从后缀名为 .o的对象文件中提取传递依赖类型的信息

  • Go 程序是通过 import 键字将一组包链接在一起

  • 导包语法:

    // 导入单个包
    import "fmt"
    import "os"
    
    // 导入多个包
    import (
    	"fmt"
    	"os"
    )
    
  • 包的可见性规则:当标识符(包括常量、变量、类型、函数名、结构字段等等)以大写字母开头,就标识这该对象就可以被外部包的代码所使用,这被称为导出(像面向对象语言中 的 public);如果以小写字母开头,则对包外是不可见的,但是他们在整个包的内部是可见并且可用的(像面向对象语言中 的 private)

  • 包调用语法

    // 1.默认调用
    import "pack1"
    
    func main() {
        pack1.Thing
    }
    
    // 2.别名的使用
    // 通过使用包的别名来解决包名之间的名称冲突,或者说根据你的个人喜好对包名进行重新设置
    import fm "fmt"
    
    func main() {
        fm.Println("hello, world")
    }
    
    // 3.点号的使用
    // 点操作的含义就是这个包导入之后在你调用这个包的函数时,你可以省略前缀的包名
    import . "fmt"
    func main() {
        Println("hello, world")
    }
    
  1. 函数

    • 函数定义格式

      func functionname(param1 type1, param2 type2, …) (ret1 type1, ret2 type2, …)
      
    • 特殊的函数--main函数:既没有参数,也没有返回类型,该函数一旦返回就表示程序已成功执行并立即退出

    • 函数里的代码(函数体)使用大括号 {} 括起来,左大括号 { 必须与方法的声明放在同一行

  2. 注释

    • 注释不会被编译,但可以通过 godoc 来使用
    • 单行注释:使用双斜杠;多行注释:使用 /**/

数据类型

  1. 常量

    • 常量使用关键字 const 定义

    • 数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型

    • 定义语法

      // const identifier_name [type] = value
      const Pi float32 = 3.14159
      const Pi = 3.1415
      // 批量定义
      const (
      	Monday, Tuesday, Wednesday = 1, 2, 3
          Thursday, Friday, Saturday = 4, 5, 6
      )
      
  2. 变量

    • 定义语法
          var identifier type
          var a, b, c int
          a := 1