包
标准库概述
像 fmt
、os
等这样具有常用功能的内置包在 Go 语言中有 150 个以上,它们被称为标准库,大部分 (一些底层的除外) 内置于 Go 本身。
正则表达式使用:
以下是一些常见的正则表达式语法和元字符:
-
普通字符:表示自身的字符,例如字母、数字、空格等。
-
a
: 匹配字符 'a' -
123
: 匹配字符串 '123'
-
-
元字符:具有特殊含义的字符,用来描述模式。
-
.
: 匹配任意单个字符(除了换行符\n
) -
^
: 匹配输入字符串的开始 -
$
: 匹配输入字符串的结尾 -
*
: 匹配前一个字符0次或多次 -
+
: 匹配前一个字符1次或多次 -
?
: 匹配前一个字符0次或1次 -
[]
: 匹配括号内的任意一个字符 -
|
: 或操作,匹配两者中的任意一个 -
()
: 分组,用于控制操作符的范围
-
-
字符类:用于匹配特定类型的字符。
-
\d
: 匹配任意数字,相当于[0-9]
-
\w
: 匹配任意字母、数字、下划线,相当于[a-zA-Z0-9_]
-
\s
: 匹配任意空白字符,包括空格、制表符、换行符等
-
-
量词:用于指定匹配次数。
-
{n}
: 匹配前一个字符恰好 n 次 -
{n,}
: 匹配前一个字符至少 n 次 -
{n,m}
: 匹配前一个字符至少 n 次,最多 m 次
-
-
转义字符:用于匹配元字符本身。
-
\
: 转义字符,用于匹配特殊字符,如\.
匹配句号
-
regexp 包
锁和 sync 包
在 Go 语言中这种锁的机制是通过 sync 包中 Mutex 来实现的。sync 来源于 "synchronized" 一词,这意味着线程将有序的对同一变量进行访问。
精密计算和 big 包
自定义包和可见性
当写自己包的时候,要使用短小的不含有 _
(下划线) 的小写单词来为文件命名。
包的初始化:
程序的执行开始于导入包,初始化 main 包然后调用 main 函数。
一个没有导入的包将通过分配初始值给所有的包级变量和调用源码中定义的包级 init 函数来初始化。一个包可能有多个 init 函数,它们甚至可以存在于同一个源码文件中。它们的执行是无序的。这是测定包的值是否只依赖于相同包下的其他值或者函数的最好的例子。
init 函数是不能被调用的。
导入的包在包自身初始化前被初始化,而一个包在程序执行中只能初始化一次。
使用 import关键字来进行导包
为自定义包使用 godoc
godoc 工具(第 3.6 节)在显示自定义包中的注释也有很好的效果:注释必须以 //
开始并无空行放在声明(包,类型,函数)前。godoc 会为每个文件生成一系列的网页。
学习参考资料:
《Go 入门指南》 | Go 技术论坛 (learnku.com)
Go 语言之旅