Go语言是一种开源的、通用的编程语言,它的设计目标是提供一种简单、高效的编程方式。
优点:
-
高性能、高并发
-
语法简单、学习曲线平缓
-
丰富的标准库
-
完善的工具链
-
静态链接
-
快速编译
-
跨平台
-
垃圾回收
从经典的"Hello World"程序开始。创建一个名为main.go的文件,然后输入以下代码:
package mainimport "fmt"func main() {fmt.Println("Hello, Go!")}在终端中,使用go run命令运行该程序。将会看到输出结果:"Hello, Go!"。
第一行代码:代表此文件属于main包的一部分,即为程序的入口包(入口文件)
第三行:导入标准库中的fmt包,向屏幕输入输出字符串,格式化字符串
Go语言有许多基本的数据类型,如整数、浮点数、字符串和布尔值。可以使用var关键字声明变量,并通过赋值操作给变量赋予初始值。Go语言支持基本数据类型,如整型、浮点型、字符串和布尔型。变量也可以通过显式指定类型或由编译器自动推断类型。
变量声明的几种方式:
自动推导变量类型——var a=“initial”
var b,c int = 1,2
f := float32(e)
常量只需要把var改为const。
golang中没有确定的常量类型,一般根据上下文自动确定类型。
if语句没有大括号,不能写在同一行。
package main
import "fmt"
func main() { age := 20
if age >= 18 { fmt.Println("You are an adult.")}else i fmt.Println(""You are a minor.") } }
golang中只有for循环类型
package main
import "fmt"
func main() { for i := 1; i <= 5; i++ { fmt.Println(i) } }
Switchcase语句没有break也不会去跑其他的分支,变量类型更多样,可以是字符串、结构体,甚至可以取代任意的ifelse语句
切片是Go语言中重要的数据结构之一,它提供了对数组的动态扩展和操作的能力。切片是一个可变长度的数组,可以任意时刻更改长度,增加了自动扩容功能。通过使用切片,我们可以方便地对数组进行增加、删除和修改等操作。
切片是引用类型,可以使用make函数来创造切片。
切片初始化举例:var s1=[ ]int{1,2,3}
可以使用if条件语句、for循环和switch语句来控制程序的流程。
switch语句的格式是:
switch a {
case 1: fmt.Println( "one" )
case 2: fmt.Println( "two" )
case 3: fmt.Println( "three" )
case 4,5: fmt.Println( "four or five" )
default: fmt.Println( "other" ) }
使用数组进行初始化:var a2=[...]int{1,2,3,4} 根据数组实际长度确定数组元素个数
Go语言中,可以使用func关键字来定义函数。一个函数可以接受零个或多个参数,并可以返回一个或多个值。例如:
package main
import "fmt"
func add(a, b int) int { return a + b }
func main() { result := add(3, 6) fmt.Println("The sum is", result) }
map是一种用于存储键值对的数据结构,类似于其他编程语言中的关联数组或字典。映射可以通过键来访问对应的值,同时也可以方便地增加、删除和修改键值对。
结构体是一种自定义的复合类型,它可以由多个不同类型的字段组成。结构体可以用于表示现实世界中的实体,如用户、商品等。我们可以通过结构体来创建自定义的数据类型,并在程序中使用。
指针是一种存储变量内存地址的数据类型。通过指针,我们可以间接地访问和修改变量的值。在Go语言中,指针使用 *表示。
Go语言通过包(package)来实现模块化编程。可将相关的代码放到一个包中,并使用该包提供的功能。例如,在上面的例子中,使用了fmt包来实现输出功能。
Go语言天生支持并发编程,通过goroutine和channel可以轻松实现并发的任务处理。使用关键字go可以启动一个独立的goroutine,而channel用于不同goroutine之间的通信。