Go(又称为Golang)是由Google开发的一种静态强类型、编译型的开源编程语言。它具有简洁、高效、安全、并发支持等特点。 下面是go中的hello world
package main
import (
"fmt"
)
// This is discription
func main() {
fmt.Println("hello world")
}
-
Package声明
代码以
package main开头,表明这个Go文件属于main包。在Go中,每个可执行程序都必须有一个main包,并且在main包中必须有一个main()函数作为程序的入口点。 -
导入语句
使用
import "fmt"导入了fmt包。fmt包是Go标准库中的一个包,提供了输入输出和格式化文本的功能。在本代码中,使用了fmt.Println()函数来输出文本。 -
注释
// This is description是一行注释。在Go中,使用//表示单行注释,用于向代码中添加解释和说明。 -
main函数
在Go程序中,
main()函数是程序的入口点。当程序执行时,它会首先执行main()函数。在这段代码中,main()函数简单地调用fmt.Println()函数,将字符串"Hello, World!"输出到控制台。 -
执行输出
代码通过调用
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身上其他语言的特点
-
静态类型和编译时检查(Java) : Go语言在编译时检查类型,有助于提前发现错误,提高代码的稳定性。
-
接口和多态(Java) : Go使用接口实现多态性,允许不同类型的对象以统一的方式被处理。
-
简洁的语法(C) : Go的语法简单直接,易于理解和编写,类似于C语言。
-
动态数组和切片(Python) : Go的切片提供了动态数组的功能,类似于Python的列表,便于处理变长数据。
-
字典和映射(Python) : Go的映射(map)类似于Python的字典,用于存储键值对,提供快速查找。
-
错误处理(C) : Go通过返回error类型值处理错误,类似于C语言,要求开发者显式处理错误。
-
并发编程(Java/C) : Go通过goroutine和channel简化并发编程,提供了轻量级的线程和同步机制。
-
函数作为一等公民(Python) : Go中的函数可以像Python那样被存储、传递和返回,方便编写高阶函数。
-
简洁的并发模型(CSP) : Go的并发模型基于CSP理论,通过channel实现goroutine间的同步通信。
-
内存管理(C/Java) : Go结合了C的手动内存管理和Java的自动垃圾回收,提供了平衡的性能和安全性。