本人根据视频中王老师讲的内容,结合上课例子以及课外资料进行学习。
Go语言,是由Google公司设计和开发的一种编程语言,其特点可以归纳为以下几点:
- 简洁易读容易上手
- 强大的性能
- 丰富的标准库
- 跨平台和可移植性
- 高效的并发处理等
正式的编写代码从输出“hello world”开始!
package main
import (
"fmt"
)
func main() {
fmt.Println("hello world")
}
分析上述代码,go语言通过import关键字导入的库,用于引入其他包中的函数、类型、变量等。
- 基本导入:使用
import关键字后跟着包路径来导入一个包。
import "fmt"
- 导入多个包:在同一个文件中导入多个包,每个
import语句占一行,或者将多个包路径放在同一个import语句中,用括号括起来,并用空格分隔。
import (
"fmt"
"os"
"time"
)
在Go语言中,fmt 是一个非常重要的标准库包,它用于格式化输入和输出。fmt 包提供了包括Print,Fprint,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这里声明了两个名为b和c的变量,并将它们分别初始化为整数1和2。由于明确指定了类型int,因此b和c都被声明为整型变量。
对于没有提供初始值的变量,将根据其指定的类型,赋值对应该类型的零值。
Go语言的基本类型包括数字型、字符串和布尔型。
一、数字型:包括整型、浮点型和复数型。
1.整型:
- 分为有符号整型和无符号整型。
- 有符号整型包括:
int8、int16、int32、int64。 - 无符号整型包括:
uint8、uint16、uint32、uint64。 - 特殊整型:
byte是uint8的别名,rune是int32的别名。
2.浮点型:
- 包括
float32和float64两种类型。
3.复数型:
- 包括
complex64和complex128两种类型。
二、字符串
- 字符串是以双引号("")或反引号(``)括起来的字符序列。
- 双引号括起来的字符串支持转义字符,如
\n表示换行,\t表示制表符等。 - 反引号括起来的字符串是原始字符串,不支持转义字符,且会保留字符串中的所有字符,包括换行符。
- 字符串是不可变的,即一旦创建,就不能更改其内容。但可以通过拼接、切片等操作来生成新的字符串。
三、布尔型
- 布尔型数据只有两个值:
true(真)和false(假)。
与java、c等语言不同的是,go语言使用:=用于声明一个新的变量或者为已经声明的变量重新赋值。
通过简单的两个例子,逐句分析go语言相比于java,c,python等语言的不同,不仅能更深入了解Go语言的基本语法和特性,还深刻体会到了其简洁性等优势。
路漫漫其修远兮,吾将上下而求索。