Go基础语法极速版(一)——从main函数到string类型

694 阅读5分钟

Hello World! 写下第一行代码

我们创建一个main.go 文件,其中提供主入口函数和 package main声明

package main // 包声明

// 方法关键字
func main () {
    print("Hello World!")
}

然后通过命令行执行 go run main.go 就行啦~

main 函数

main 函数是Go语言程序的入口函数,它在main包内定义。该函数不接受任何参数,并且没有返回值。

要执行Go程序,可以使用命令 go run main.go,其中 main.go 是包含main函数的文件名。这个命令将直接运行程序,并执行main函数中的代码。

如果文件不叫 main.go,而是另外一个名称,那么需要先使用 go build 命令编译程序,生成可执行文件,然后再使用 go run 命令执行生成的可执行文件。这样,程序将在执行时找到main函数并开始执行。

无论是直接执行还是编译后执行,main函数作为程序的入口点,是程序开始执行的地方。在main函数中,可以编写逻辑代码,初始化变量,调用其他函数以及处理程序的运行逻辑。由于main函数不接受任何参数,也没有返回值,它主要负责程序的初始化和启动,而不需要与外部环境进行交互。

包声明

Go语言中的包声明是通过语法形式"package xxxx"来实现的。包名由字母和下划线的组合构成。与文件夹的名称可以不同,这为开发者提供了一定的灵活性。需要注意的是,在同一个文件夹下的所有Go文件中,包声明必须一致,也就是说它们都应该使用相同的包名。这种一致性有助于组织和管理代码,使得不同文件之间可以正确地引用和调用彼此的函数和变量。通过包声明,开发者能够将相关的代码组织在一起,促进模块化开发和代码重用,从而提高代码的可维护性和可扩展性。

在Go语言中,我们使用"import"关键字来引入其他包。引入包的语法形式是"import [别名] 包路径"。引入的包路径可以是绝对路径(包含完整的路径)或相对路径(相对于当前文件的路径)。可以为引入的包指定一个别名,以便在代码中使用更简洁的方式调用该包中的函数和变量。

package main

import (
	"fmt"
	"net/http"
	_ "strings"
)

func main() {
	print("123123")
	fmt.Printf("", print)
}

image.png

在Go语言中,如果我们引入了一个包但没有在代码中使用它,编译器会报错。这是为了鼓励开发者编写整洁的代码,避免引入无用的包,从而减少程序的冗余性和复杂性。除了匿名引用,Goland 会帮你自动引入你代码里面用得包,在你不用之后也会删除。

另外,在引入包时,如果我们希望只执行该包中的初始化函数而不直接使用包中的其他内容,我们可以使用匿名引入。匿名引入的语法是在包路径前面加上一个下划线,如"import _ 包路径"。这样做可以确保编译器不会报告未使用的包错误,同时允许执行该包的初始化操作,这对于某些特殊情况下的包是非常有用的。

string 类型

Go语言中,字符串的声明具有以下要点。当字符串被双引号引起来时,如果字符串内部包含双引号,则需要使用反斜杠进行转义。例如,"Hello "World""表示字符串"Hello "World""。而当字符串被反引号 (`) 引起来时,字符串内部的内容不需要转义,可以包含任何字符。例如, fmt.Println(`Hello "World"`) 可以正确打印出字符串Hello "World"

另外,字符串的长度在Go中有一些特殊之处。字符串的字节长度与其编码无关,可以通过 len(str) 来获取。这表示字符串所占用的字节数,而不考虑具体的编码方式。另一方面,字符串的字符数量与其编码有关,需要使用相应的编码库来计算。这是因为某些字符可能会占用多个字节。因此,如果想要准确计算字符串的字符数量,需要使用适当的编码库来进行处理。

以下是一个简单的示例代码,演示了字符串的声明和长度计算:

package main

import (
	"fmt"
	"unicode/utf8"
)

func main() {
	fmt.Println("Hello, \"World\"")
	fmt.Println(`Hello, "World"`)

	fmt.Println("字节长度:", len("你好"))                    // 字节长度: 6
	fmt.Println("字符数量:", utf8.RuneCountInString("你好")) // 字符数量: 2
}

strings包

Go语言中的strings包是用于处理字符串的标准库之一。它提供了各种方法来执行字符串操作,如查找和替换、大小写转换、子字符串相关操作以及字符串相等比较。

string 的拼接直接使用 + 号就可以。注意的是,某些语言支持 string 和别的类型拼接,但是golang 不可以。

查找和替换

strings包中的方法可以帮助我们查找指定的子字符串,并进行替换或计数。例如,strings.Contains(str, substr)可以用来检查字符串str中是否包含子字符串substr。另外,strings.Replace(str, old, new, n)可以将字符串str中的old子字符串替换为new,并指定替换的次数n。

大小写转换

Go提供了字符串大小写转换的方法。strings.ToUpper(str)可以将字符串str中的所有字符转换为大写形式,而strings.ToLower(str)可以将字符串str中的所有字符转换为小写形式。

子字符串相关

strings包还提供了一些方法来处理子字符串,如获取子字符串的位置、截取指定范围的子字符串等。例如,strings.Index(str, substr)可以返回子字符串substr在字符串str中第一次出现的位置索引。