GO学习第一章

运行第一个go程序

假设我们拥有一个名为hello.go的文件,我们该如何运行这段代码

  • 终端

    • method 1

      1
      $ go run hello.go
    • method 2

      1
      2
      $ go build hello.go
      $ ./hello
  • 使用GoLand

    • 在程序的左侧栏有一个绿色小三角,点击即可运行

最简单程序的结构

  1. 包声明

  2. 引入包

  3. 函数

  4. 变量

  5. 语句 & 表达式

  6. 注释

举例说明

1
2
3
4
5
6
7
8
9
10
11
package main 
//第一行代码 package main 定义了包名。你必须在源文件中非注释的第一行指明这个文件属于哪个包,如:package main。package main表示一个可独立执行的程序,每个 Go 应用程序都包含一个名为 main 的包。

import "fmt"
//告诉 Go 编译器这个程序需要使用 fmt 包(的函数,或其他元素),fmt 包实现了格式化 IO(输入/输出)的函数。

func main() {
//程序开始执行的函数
/* 这是我的第一个简单的程序 */
fmt.Println("Hello, World!")
}
  • 标识符(包括常量、变量、类型、函数名、结构字段等等)以一个大写字母开头,那么使用这种形式的标识符的对象就可以被外部包的代码所使用(客户端程序需要先导入这个包)

  • 标识符如果以小写字母开头,则对包外是不可见的,但是他们在整个包的内部是可见并且可用的

  • 需要注意的是 { 不能单独放在一行,所以以下代码在运行时会产生错误

基础语法

Go标记

Go 程序可以由多个标记组成,可以是关键字,标识符,常量,字符串,符号

1
fmt.Println("Hello, World!")

这行语句由 6 个标记组成,分别是

  • fmt

  • .

  • Println

  • (

  • “Hello, World!”

  • )

行分隔符

在 Go 程序中,一行代表一个语句结束。每个语句不需要像 C 家族中的其它语言一样以分号 ; 结尾,因为这些工作都将由 Go 编译器自动完成。

如果你打算将多个语句写在同一行,它们则必须使用***分号***人为区分,但在实际开发中并不鼓励这种做法。

注释

注释不会被编译,每一个包应该有相关注释。

单行注释是最常见的注释形式,你可以在任何地方使用以 // 开头的单行注释。多行注释也叫块注释,均已以 /* 开头,并以 */ 结尾

标识符

标识符用来命名变量、类型等程序实体。一个标识符实际上就是一个或是多个字母(AZ和az)数字(0~9)、下划线_组成的序列,但是第一个字符必须是字母或下划线而不能是数字

字符串连接

Go 语言的字符串连接可以通过 + 实现

空格

在 Go 语言中,空格通常用于分隔标识符、关键字、运算符和表达式,以提高代码的可读性

  • 变量的声明必须使用空格隔开

    • 示例

      1
      2
      var x int
      const Pi float64 = 3.14159265358979323846
  • 运算符和操作数之间要使用空格能让程序更易阅读

  • 关键字和表达式之间要使用空格

格式化字符串

使用 fmt.Sprintffmt.Printf 格式化字符串并赋值给新串

  • Sprintf 根据格式化参数生成格式化的字符串并返回该字符串

  • Printf 根据格式化参数生成格式化的字符串并写入标准输出

1
2
3
4
5
6
7
8
9
10
11
12
13
14
package main

import (
"fmt"
)

func main() {
// %d 表示整型数字,%s 表示字符串
var stockcode=123
var enddate="2023-08-17"
var url="Code=%d&endDate=%s"
var target_url=fmt.Sprintf(url,stockcode,enddate)
fmt.Println(target_url)
}

结果为

Code=123&endDate=2023-08-17

1
2
3
4
5
6
7
8
9
10
11
12
13
package main

import (
"fmt"
)

func main() {
// %d 表示整型数字,%s 表示字符串
var stockcode=222
var enddate="2020-12-31"
var url="Code=%d&endDate=%s"
fmt.Printf(url,stockcode,enddate)
}

结果为

Code=222&endDate=2020-12-31