后端训练营第一课(Go语言入门) | 豆包MarsCode AI 刷题

62 阅读4分钟

本人根据视频中王老师讲的内容,结合上课例子以及课外资料进行学习。

Go语言,是由Google公司设计和开发的一种编程语言,其特点可以归纳为以下几点:

  • 简洁易读容易上手
  • 强大的性能
  • 丰富的标准库
  • 跨平台和可移植性
  • 高效的并发处理等

正式的编写代码从输出“hello world”开始!

package main

import (
	"fmt"
)

func main() {
	fmt.Println("hello world")
}

分析上述代码,go语言通过import关键字导入的库,用于引入其他包中的函数、类型、变量等。

  1. 基本导入:使用import关键字后跟着包路径来导入一个包。
import "fmt"
  1. 导入多个包:在同一个文件中导入多个包,每个import语句占一行,或者将多个包路径放在同一个import语句中,用括号括起来,并用空格分隔。
import ( 
"fmt"
"os"
"time" 
)

在Go语言中,fmt 是一个非常重要的标准库包,它用于格式化输入和输出。fmt 包提供了包括PrintFprint,Sprint,Errorf等一系列函数,能够方便地进行数据的格式化、打印、读取等操作。

  • func main() 定义了 main 函数,它作为程序的开始执行点。
  • 大括号 {} 内的代码是 main 函数的主体,它包含了程序执行时要运行的语句。

main 函数可以包含任意数量的语句,这些语句会按顺序执行。在上面的例子中,main 函数只包含了一个语句,即调用 fmt.Println 函数来打印 "Hello, World!"。

我们接着来学习第二段代码

package main

import (
	"fmt"
	"math"
)

func main() {
	var a = "initial"
	var b, c int = 1, 2
	var d = true
	var e float64
	f := float32(e)
	g := a + "foo"
	fmt.Println(a, b, c, d, e, f) 
	fmt.Println(g)               
	const s string = "constant"
	const h = 500000000
	const i = 3e20 / h
	fmt.Println(s, h, i, math.Sin(h), math.Sin(i))
}

上述代码中,导入了math库,这显然是与数学运算相关的库,在我们的例子当中使用math.Sin()函数,通过传递一个浮点数作为参数给 math.Sin() 函数,它会返回该角度的正弦值。

go语言作为一个强类型语言,通过var关键字对变量进行初始化并赋值,go编译器将会自动推断该变量的类型。 而var b, c int = 1, 2这里声明了两个名为bc的变量,并将它们分别初始化为整数12。由于明确指定了类型int,因此bc都被声明为整型变量。 对于没有提供初始值的变量,将根据其指定的类型,赋值对应该类型的零值。

Go语言的基本类型包括数字型、字符串和布尔型。

一、数字型:包括整型、浮点型和复数型。

1.整型

  • 分为有符号整型和无符号整型。
  • 有符号整型包括:int8int16int32int64
  • 无符号整型包括:uint8uint16uint32uint64
  • 特殊整型:byteuint8的别名,runeint32的别名。

2.浮点型

  • 包括float32float64两种类型。

3.复数型

  • 包括complex64complex128两种类型。

二、字符串

  • 字符串是以双引号("")或反引号(``)括起来的字符序列。
  • 双引号括起来的字符串支持转义字符,如\n表示换行,\t表示制表符等。
  • 反引号括起来的字符串是原始字符串,不支持转义字符,且会保留字符串中的所有字符,包括换行符。
  • 字符串是不可变的,即一旦创建,就不能更改其内容。但可以通过拼接、切片等操作来生成新的字符串。

三、布尔型

  • 布尔型数据只有两个值:true(真)和false(假)。

与java、c等语言不同的是,go语言使用:=用于声明一个新的变量或者为已经声明的变量重新赋值。

通过简单的两个例子,逐句分析go语言相比于java,c,python等语言的不同,不仅能更深入了解Go语言的基本语法和特性,还深刻体会到了其简洁性等优势。

路漫漫其修远兮,吾将上下而求索。