Go语言入门教学,带你学最好玩的语言,最简单的入门(二)

Go语言入门教学,带你学最好玩的语言,最简单的入门(二)

在文章一中,介绍了如何去安装以及使用Go初始化指令以及使用Go编写入门的第一个程序,HelloWorld。那么接下来,开始学习Go的基础知识。❤❤❤❤❤💕

包、变量和函数

关于Go中的包

在Go语言中,包(Package)是组织和管理代码的基本单位。一个包由一组相关的源代码文件组成,这些文件放置在同一个目录下,并且在代码中使用相同的包名来引用。

包的概念有以下几个重要的特性和作用:

  1. 组织代码:包将相关的代码组织在一起,使得代码更加模块化和结构化。通过将代码分为多个包,可以提高代码的可读性、维护性和复用性。

  2. 命名空间:包提供了命名空间的机制,不同包中的标识符(如变量、函数、类型等)可以具有相同的名称而不会产生冲突。通过使用包名限定标识符的作用域,可以避免命名冲突问题。

  3. 可见性和封装:Go语言中的标识符的可见性是由其命名首字母的大小写来确定的。包内以小写字母开头的标识符对外部包不可见,只能在包内部访问,起到了封装的作用。包可以选择公开部分标识符,使其对外可见,以实现接口和功能的暴露。

  4. 依赖管理:包可以依赖其他包,通过导入(import)其他包来使用其提供的功能。通过明确定义包之间的依赖关系,可以方便地管理和维护代码。

  5. 可重用性:包提供了代码的封装和复用机制。可以将常用的功能封装为包,并在其他项目中重复使用。Go语言标准库就是由多个包组成的,开发者可以方便地使用标准库中的功能。

在Go语言中,使用import关键字来导入其他包,语法如下:

import "package/path"

其中,package/path表示要导入的包的路径。

导入后,可以通过包名加点号(.)来访问包中的导出标识符。

总结一下,包是Go语言中用于组织、管理和复用代码的基本单位。它具有命名空间、可见性和封装等特性,通过包的导入和使用,可以实现模块化开发和依赖管理。

我们可以通过以下代码来对包有一个更深入的理解:

package main

import (
	"fmt"
	"math/rand"
)

func main() {
	fmt.Println("My favorite number is", rand.Intn(10))
}

在这段程序中,包名与导入路径的最后一个元素一致。

例如,“math/rand” 包中的源码均以 package rand 语句开始。

关于包的导入

在Go语言中,使用import进行包的导入,
在 Go 中,可以使用 import 关键字导入包。要导入一个包,你需要在代码文件的顶部使用 import 关键字,后面跟着要导入的包的路径。

例如,假设要导入 fmt 包,可以这样写:

import "fmt"
//如果要导入多个包,可以使用括号将它们括起来,并用逗号分隔,如下所示:

go
import (
    "fmt"
    "math"
)

有时候,你可能只想导入包而不直接使用它的标识符,可以使用下划线 _ 替代包的名称。这样做的目的是为了让编译器执行包的初始化函数,但是无法在代码中使用该包的其他标识符。

import _ "github.com/example/package"

请注意,在导入包时,Go 编译器会查找你导入的包是否在你的 GOPATH(或者 Go Modules 的情况下在项目目录)下。如果找不到包,会导致编译错误。
ps:在Go的包中,能访问到的只有开头大写的变量。

例如:

package main

import (
	"fmt"
	"math"
)

func main() {
	fmt.Println(math.Pi)
    //在这里,如果是math.pi是无法访问math包中的函数或者变量的,只有Pi才可以进行访问
}

关于Go中的函数

在Go语言中,函数是可执行的代码块,用于执行特定的任务或完成特定的操作。通过定义函数,可以将代码模块化并实现代码的重用。

Go语言的函数具有以下特点:

声明函数:使用func关键字声明一个函数,并指定函数的名称、参数列表和返回类型。例如:

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

参数和返回值:函数可以接受零个或多个参数,并且可以返回零个或一个值。参数和返回值都需要指定类型。例如:

func greet(name string) {
    fmt.Println("Hello,", name)
}

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

多返回值:Go语言支持函数返回多个值。例如:

func swap(a, b int) (int, int) {
    return b, a
}

func divide(dividend, divisor float64) (quotient float64, remainder float64) {
    quotient = dividend / divisor
    remainder = dividend % divisor
    return // 可以省略返回值的名称
}

匿名函数:可以在函数内部定义匿名函数,并将其赋值给变量或作为参数传递给其他函数。例如:

func main() {
    greeting := func() {
        fmt.Println("Hello, world!")
    }
    greeting()
}

函数作为参数和返回值:在Go语言中,函数可以作为参数传递给其他函数,也可以作为函数的返回值。这种特性使得函数可以更加灵活和可组合。例如:

func applyOperation(a, b int, operation func(int, int) int) int {
    return operation(a, b)
}

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

func multiply(a, b int) int {
    return a * b
}

func main() {
    result := applyOperation(3, 4, add)
    fmt.Println(result) // 输出:7

    result = applyOperation(3, 4, multiply)
    fmt.Println(result) // 输出:12
}

关于Go中的变量

当你在Go语言中编写程序时,变量用于存储和操作数据。在Go中,变量必须先声明然后才能使用。

以下是关于Go变量的一些重要信息:

变量声明:使用关键字var来声明一个变量,然后指定变量的名称和类型。例如:

var age int

变量初始化:在声明变量的同时,可以为其赋初值。例如:

var age int = 25

也可以使用短变量声明方式进行初始化:

age := 25 // 自动推断类型为int

类型推断:Go语言可以根据变量的值自动推断其类型,无需显式指定类型。例如:

name := "Alice" // 自动推断类型为string

多个变量声明:可以同时声明多个变量,每个变量之间使用逗号分隔。例如:

var x, y, z int

零值:在Go中,所有的变量在被声明但未被显式初始化时,会被赋予一个默认的零值。例如,整数类型的零值是0,字符串类型的零值是空字符串"",布尔类型的零值是false。

常量:常量是声明时就确定并且不能更改其值的变量。在Go中,使用关键字const来声明常量。例如:

const pi = 3.14159

变量作用域:变量的作用域是指变量在程序中可见的范围。Go语言中有块级作用域,即变量在其声明的块内可见。函数参数和局部变量的作用域限定在函数体内,而全局变量的作用域在整个包内都可见。

匿名变量:使用下划线_表示匿名变量,可以用于忽略某个值的占位。例如:

_, err := doSomething()

变量命名规则:在Go语言中,变量的命名遵循驼峰命名法,推荐使用具有描述性的名称。首字母大写的变量是导出的(可在其他包中访问),首字母小写的变量是私有的(仅在当前包内可见)。

总结💕💕💕😘

恭喜你,通过本篇文章,成功了解了Go语言中,变量,函数,以及包的概念以及使用方法,接下来将会学习控制流语句。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值