Go 语言入门指南:基础语法和常用特性解析

什么是Go语言?

Go语言是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。它用批判吸收的眼光,融合C语言、Java等众家之长,将简洁、高效演绎得淋漓尽致。

Go语言语法与C相近,但功能上有:内存安全,GC(垃圾回收),结构形态及CSP-style并发计算。

Go语言有什么特点和优势?

  • 简单易学,学习曲线平缓,不需要像 C/C++ 语言动辄需要两到三年的学习期。
  • 代码风格统一,提供了一套格式化工具——go fmt。
  • 原生支持并发,使用起来非常简单。
  • 开发效率高,内置了垃圾回收机制,降低了开发者的心智负担,使其拥有像Python、PHP等解释性语言的一样的开发效率。
  • 编译速度明显优于 Java 和 C++,还拥有接近C语言的运行效率以及接近 PHP 的开发效率。
  • 标准库非常稳定并且丰富多样,包括网络、系统、加密、编码、图形等各个方面。
  • 稳定性强。
  • 部署方便。

Go的基础语法与常用特性解析

让我们从最经典的“ hello world” 开始

代码解析:

跟大多数的编程语言一样,在Go语言中首先要定义main包,它定义了一个独立的可执行的程序,而不是一个库,在main里的main 函数 也很特殊,它是整个程序执行时的入口(译注:C系语言差不多都这样)。main函数所做的事情就是程序做的。当然了,main函数一般调用其它包里的函数完成很多工作(如:fmt.Println)。

然后,我们必须告诉编译器,此源文件需要那些包,这就是紧跟在package声明后面的import声明扮演的角色。本程序只用到了一个包,即“fmt”,而其他大多数的程序,则需要用到很多个包。

最后,是调用fmt包里面的Println函数将“hello world”这个内容打印输出。

1.注释

Go语言中的注释和C语言中的注释格式相同,即: 单行注释:以//开头。 多行注释:以/*开头,以/*结尾,通常也称为注释块。

2.包导入

上面的hello world程序已经解释过,可以用import关键字来导入包,这里要补充的是,导入的包可以是标准库的,也可以是自己定义的包。

3.变量声明

在Go语言中,变量声明有两种方式:

1.使用var关键字来声明一个变量。

eg:var age int(声明了一个名为age的整形变量)

2.短声明方式:

eg:age:=25(短声明并初始化一个整数类型的变量age)

这里没有写明age的类型,但是Go语言将会根据你赋予的值来自动判断其类型,这为我们在定义类型时取得了方便。

4.常量声明

在Go语言中,使用const关键字来声明常量。常量在声明时必须进行初始化。

eg:

const pi float64=3.14
const day=1

5.数据类型

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

eg:

var sum int             // 声明一个整数类型的变量
var score float64          // 声明一个浮点数类型的变量
var ok bool         // 声明一个布尔类型的变量
var name string         // 声明一个字符串类型的变量
var numbers [10]int                        // 声明一个包含10个整数的数组
var colors []string                       // 声明一个字符串切片
var person map[string]string              // 声明一个字符串到字符串的映射
var student struct {                      // 声明一个结构体
    name string
    age int
}
var ptr *int                              // 声明一个整数类型的指针变量
var add func(int, int) int                // 声明一个函数变量

6.控制流语句

条件语句

循环语句

7.函数:

在Go语言中,使用func关键字定义函数

eg:

func sayHello() {
    fmt.Println("Hello")
}

func add(a, b int) int {
    return a + b
}

8.结构体

结构体是一种用户自定义的复合类型,用于封装多个字段。

结构体格式如下:

9.方法

可以为结构体定义方法,方法是一种与特定类型关联的函数。

type Rectangle struct {
    length, width float64
}

func (r Rectangle) area() float64 {
    return r.length * r.width
}

func main() {
    rect := Rectangle{length: 10, width: 5}
    fmt.Println(rect.area())
}

10.defer语句

defer语句用于延迟函数的执行,它会在当前函数返回之前执行。

func main() {
    defer fmt.Println("好")
    fmt.Println("你")
}
// 输出结果:
// 你
// 好

11.并发编程

Go具有内置的并发机制,可以轻松地编写并发程序。关键字go用于启动一个新的goroutine。

func sayHello() {
    fmt.Println("你")
}

func main() {
    go sayHello()   // 在新的goroutine中执行sayHello函数
    fmt.Println("好")
}


Final summary

在最后,我想说的是,如果你也想编写高质量的应用程序,我想Go语言应该会是你的不二选择,它天生就是为了高效率和高质量而生的!!!

本文里的代码有什么问题,可请各位大佬指正qwq

最后的最后,给大家安利我自己搭建的人工智能网站:aihub.52chye.cn

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fashia

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值