• 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:

    1. const pi float64=3.14
    2. const day=1

    5.数据类型

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

    eg:

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

    6.控制流语句

    条件语句

    循环语句

    7.函数:

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

    eg:

    1. func sayHello() {
    2. fmt.Println("Hello")
    3. }
    4. func add(a, b int) int {
    5. return a + b
    6. }

    8.结构体

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

    结构体格式如下:

    9.方法

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

    1. type Rectangle struct {
    2. length, width float64
    3. }
    4. func (r Rectangle) area() float64 {
    5. return r.length * r.width
    6. }
    7. func main() {
    8. rect := Rectangle{length: 10, width: 5}
    9. fmt.Println(rect.area())
    10. }

    10.defer语句

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

    1. func main() {
    2. defer fmt.Println("好")
    3. fmt.Println("你")
    4. }
    5. // 输出结果:
    6. // 你
    7. // 好

    11.并发编程

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

    1. func sayHello() {
    2. fmt.Println("你")
    3. }
    4. func main() {
    5. go sayHello() // 在新的goroutine中执行sayHello函数
    6. fmt.Println("好")
    7. }

    Final summary

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

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

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

  • 相关阅读:
    污水中COD超标的处理方法
    微信小程序生成海报
    OpenJudge NOI题库 1.4 编程基础之逻辑表达式与条件分支
    结构型设计模式——组合模式
    ERROR (-1005)]: Host not enough! nebula无法注册元数据
    PixelSNAIL论文代码学习(2)——门控残差网络的实现
    小红书达人怎么对接,博主沟通流程汇总!
    1041 Be Unique
    ts | js | 爬虫小公举分享
    DVWA靶场搭建教程
  • 原文地址:https://blog.csdn.net/m0_74092309/article/details/132649128