GO基础语法 | 豆包MarsCode AI刷题

57 阅读4分钟

Go(又称为Golang)是由Google开发的一种静态强类型、编译型的开源编程语言。它具有简洁、高效、安全、并发支持等特点。 下面是go中的hello world

package main  
 
import (  
"fmt"  
)  
// This is discription
func main() {  
fmt.Println("hello world")  
}
  1. Package声明

    代码以 package main 开头,表明这个Go文件属于 main 包。在Go中,每个可执行程序都必须有一个 main 包,并且在 main 包中必须有一个main()函数作为程序的入口点。

  2. 导入语句

    使用 import "fmt" 导入了 fmt 包。fmt 包是Go标准库中的一个包,提供了输入输出和格式化文本的功能。在本代码中,使用了 fmt.Println() 函数来输出文本。

  3. 注释

    // This is description 是一行注释。在Go中,使用//表示单行注释,用于向代码中添加解释和说明。

  4. main函数

    在Go程序中,main() 函数是程序的入口点。当程序执行时,它会首先执行 main() 函数。在这段代码中,main() 函数简单地调用 fmt.Println() 函数,将字符串"Hello, World!"输出到控制台。

  5. 执行输出

    代码通过调用 fmt.Println("Hello, World!") 将 "Hello, World!" 这个字符串输出到终端。fmt.Println() 函数是一个方便的方法,用于在控制台输出文本,并在输出的最后自动添加一个换行符。

Go 语言按类别有以下几种数据类型:

序号类型和描述
1布尔型 布尔型的值只可以是常量 true 或者 false。一个简单的例子:var b bool = true。
2数字类型 整型 int 和浮点型 float32、float64,Go 语言支持整型和浮点型数字,并且支持复数,其中位的运算采用补码。
3字符串类型:  字符串就是一串固定长度的字符连接起来的字符序列。Go 的字符串是由单个字节连接起来的。Go 语言的字符串的字节使用 UTF-8 编码标识 Unicode 文本。
4派生类型:  包括: (a) 指针类型(Pointer) (b) 数组类型 (c) 结构化类型(struct) (d) Channel 类型 (e) 函数类型 (f) 切片类型 (g) 接口类型(interface) (h) Map 类型
在Go中,变量必须先声明后使用:
var message string = "Hello, World"
fmt.Println(message)

也可以使用:=来简化变量的声明和初始化:

message := "Hello, World"
fmt.Println(message)

条件语句(if)

if expression {
    // 当expression为true时执行
} else if anotherExpression {
    // 当anotherExpression为true时执行
} else {
    // 当所有条件都不满足时执行
}

循环语句(for)

for init; condition; post { // 初始化;条件;迭代
    // 循环体
}

Go没有传统的while循环,for循环可以完全替代它。

函数

在Go中定义函数使用func关键字:

func myFunction(param1 type1, param2 type2) returnType {
    // 函数体
    return value
}

数组

go
var arr [5]int = [5]int{1, 2, 3, 4, 5}

切片

切片是对数组的抽象,允许动态大小:

slice := make([]int, 5)
slice[0] = 1

映射

映射是Go中存储键值对的数据结构:

m := make(map[string]int)
m["key"] = 1

在go中的基础语法和数据结构中可以看出 go中有java python c的影子如果之前你过别的编程语言的经验肯定可以快速上手go 下面是我通过marscode总结出的go身上其他语言的特点

  1. 静态类型和编译时检查(Java) : Go语言在编译时检查类型,有助于提前发现错误,提高代码的稳定性。

  2. 接口和多态(Java) : Go使用接口实现多态性,允许不同类型的对象以统一的方式被处理。

  3. 简洁的语法(C) : Go的语法简单直接,易于理解和编写,类似于C语言。

  4. 动态数组和切片(Python) : Go的切片提供了动态数组的功能,类似于Python的列表,便于处理变长数据。

  5. 字典和映射(Python) : Go的映射(map)类似于Python的字典,用于存储键值对,提供快速查找。

  6. 错误处理(C) : Go通过返回error类型值处理错误,类似于C语言,要求开发者显式处理错误。

  7. 并发编程(Java/C) : Go通过goroutine和channel简化并发编程,提供了轻量级的线程和同步机制。

  8. 函数作为一等公民(Python) : Go中的函数可以像Python那样被存储、传递和返回,方便编写高阶函数。

  9. 简洁的并发模型(CSP) : Go的并发模型基于CSP理论,通过channel实现goroutine间的同步通信。

  10. 内存管理(C/Java) : Go结合了C的手动内存管理和Java的自动垃圾回收,提供了平衡的性能和安全性。