Go os包

File 方法 含义 说明 Close 关闭文件 Chdir 改变当前工作目录 *File必须为目录 Chmod 修改文件权限 Chown 修改文件所有者和组 Fd 返回文件描述符 Name 返回文件名 Read 从文件读取内容到字节切片 读取后指针位置会移动 ReadAt 从文件读取内容到字节切片,从指定位置开始 读取后指针位置不会移动 ReadDir 获取目录下的列表,返回DirEntry切片 *File必须为目录 Readdir 获取目录下的列表,返回FileInfo切片 *File必须为目录 Readdirnames 获取指定目录下的文件名 *File必须为目录 ReadFrom 从io.Reader读取内容到文件 读取后指针位置会移动,本质上是写文件 Seek 设置指针位置 SetDeadline 设置文件I/O超时时间 只有部分文件类型支持 SetReadDeadline 设置文件读取超时时间 只有部分文件类型支持 SetWriteDeadline 设置文件写入超时时间 只有部分文件类型支持 Stat 获取文件信息,返回FileInfo Sync 将文件内容同步到磁盘 SyscallConn 获取与文件操作相关的系统调用连接 Truncate 截断文件 Write 将字节切片中的数据写入文件 写入后指针位置会移动 WriteAt 将字节切片中的数据写入文件,从指定位置开始 写入后指针位置不会移动 WriteString 将字符串写入文件 写入后指针位置会移动 WriteTo 将数据写入io.Writer 写入后指针位置会移动,本质上是读文件 FileInfo 方法 含义 说明 IsDir 返回文件是否是目录 ModTime 返回文件的修改时间 Name 返回文件名 Size 返回文件的大小 Sys 返回文件的系统信息 FileMode 方法 含义 说明 IsDir 返回文件是否是目录 IsRegular 返回文件是否是普通文件 Perm 返回文件的权限 String 返回文件的字符串表示形式 Type 返回文件的类型 Process 方法 含义 说明 Kill 杀掉进程 Release 释放与Process对象相关的资源 Signal 向进程发送信号 Wait 等待进程退出 ProcessState 用于获取已结束进程状态信息。...

2024-10-23 23:49:39 · 2 分钟 · 慢步道人

Go time包

Time 方法 说明 Add 在该时间上加个时间得到新时间 AddDate 在该时间上加个日期得到新时间 After 判断该时间是否在另一个时间之后 AppendFormat 将该时间格式化为字符串并追加到字节切片中 Before 判断该时间是否在另一个时间之前 Clock 返回当前时间的时、分、秒 Compare 和另一个时间比较大小,返回-1、0、1 Date 返回该时间的年、月、日 Day 返回该时间的日 Equal 判断该时间是否和另一个时间相等 Format 将该时间格式化为字符串 GoString 返回该时间的字符串表示形式 GobDecode 从字节切片中解码该时间 GobEncode 将该时间编码为字节切片 Hour 返回该时间的小时 ISOWeek 返回该时间所在的ISO周 In 返回该时间在指定时区对应的时间 IsDST 判断该时间是否在夏令时 IsZero 判断一个时间值是否为零值 Local 返回该时间在本地时区对应的时间 Location 返回该时间所在的时区 MarshalBinary 将该时间序列化为二进制格式 MarshalJSON 将该时间序列化为JSON格式 MarshalText 将该时间序列化为文本格式 Minute 返回该时间的分钟 Month 返回该时间的月份 Nanosecond 返回该时间的纳秒 Round 将该时间舍入到指定的时间单位 Second 返回该时间的秒 String 返回该时间的字符串表示形式 Sub 在该时间上减去另一个时间得到新时间 Time 返回该时间的时间戳 Truncate 将该时间截断到指定的时间单位 UTC 返回该时间在UTC时区对应的时间 Unix 返回该时间的Unix时间戳,单位:秒 UnixMicro 返回该时间的Unix时间戳,单位:微秒 UnixMilli 返回该时间的Unix时间戳,单位:毫秒 UnixNano 返回该时间的Unix时间戳,单位:纳秒 UnmarshalBinary 从二进制格式反序列化该时间 UnmarshalJSON 从JSON格式反序列化该时间 UnmarshalText 从文本格式反序列化该时间 Weekday 返回该时间所在的星期几 Year 返回该时间的年份 YearDay 返回该时间所在的年中的第几天 Zone 返回该时间所在的时区名称和偏移量(单位:秒) ZoneBounds 返回该时间所在的时区的夏令时开始和结束时间 包函数 函数名 含义 说明 Now 返回当前时间 Date 构造指定的时间 FixedZone 构造一个指定偏移时的时区 LoadLocation 加载时区信息 LoadLocationFromTZData 从TZData文件加载时区信息 Parse 解析时间字符串 ParseDuration 解析时间间隔字符串 ParseInLocation 在指定时区解析时间字符串 Since 计算指定时间与现在的间隔 等同于time....

2024-10-22 22:23:20 · 1 分钟 · 慢步道人

Go strings包

Builder 方法 说明 String 返回最终构造的字符串 Len 返回缓冲区(字节切片)的长度 Cap 返回缓冲区(字节切片)的容量 Reset 重置Builder Grow 显式扩容 Write 向Builder追加字节切片 WriteByte 向Builder追加字节 WriteRune 向Builder追加Unicode码点 WriteString 向Builder追加字符串 包函数 函数名 含义 说明 Clone 返回字符串的副本 Compare 比较两个字符串的大小,返回-1、0、1 Contains 判断一个字符串是否包含另一个字符串 类似于pascal的Pos()>0 ContainsAny 判断一个字符串是否包含另一个字符串中的任意一个字符 ContainsRune 判断一个字符串是否包含一个Unicode码点 ContainsFunc 判断一个字符串是否包含满足特定条件的字符 Count 统计一个字符串中某个子字符串出现的次数 Cut 将一个字符串按照指定的分隔符进行切割 只进行一次切割 CutPrefix 判断一个字符串是否以指定的前缀开始,是则进行切割 CutSuffix 判断一个字符串是否以指定的后缀结束,是则进行切割 EqualFold 判断两个字符串是否相等,忽略大小写 类似于pascal的SameText() Fields 用连续的空白字符对字符串进行分割 FieldsFunc 用指定的函数对字符串进行分割 HasPrefix 判断一个字符串是否以指定的前缀开始 HasSuffix 判断一个字符串是否以指定的后缀结束 Index 返回一个字符串中某个子字符串第一次出现的位置(从0开始,未找到返回-1) 类似于pascal的Pos() IndexAny 返回一个字符串中任意一个字符第一次出现的位置(从0开始,未找到返回-1) IndexByte 返回一个字符串中某个字节第一次出现的位置(从0开始,未找到返回-1) IndexRune 返回一个字符串中某个Unicode码点第一次出现的位置(从0开始,未找到返回-1) IndexFunc 返回一个字符串中满足特定条件的字符第一次出现的位置(从0开始,未找到返回-1) LastIndex 返回一个字符串中某个子字符串最后一次出现的位置(从0开始,未找到返回-1) LastIndexAny 返回一个字符串中任意一个字符最后一次出现的位置(从0开始,未找到返回-1) LastIndexByte 返回一个字符串中某个字节最后一次出现的位置(从0开始,未找到返回-1) LastIndexFunc 返回一个字符串中满足特定条件的字符最后一次出现的位置(从0开始,未找到返回-1) Join 将一个字符串切片用指定的字符串连接成一个新字符串 Map 将一个字符串中的每个字符都映射成另一个字符 Repeat 将一个字符串重复指定的次数 Replace 将一个字符串中的某个子字符串替换成另一个字符串 ReplaceAll 将一个字符串中的所有子字符串替换成另一个字符串 Split 用指定的字符对字符串进行分割 SplitN 用指定的字符对字符串进行分割,最多分割n次 SplitAfter 用指定的字符对字符串进行分割,保留分隔符 SplitAfterN 用指定的字符对字符串进行分割,保留分隔符,最多分割n次 ToLower 将一个字符串中的所有字符都转换成小写 ToUpper 将一个字符串中的所有字符都转换成大写 ToTitle 将其中所有的Unicode字母转换为它们对应的Unicode标题大小写 ToLowerSpecial 将字符串中的字符按照特定规则转换为小写形式 ToUpperSpecial 将字符串中的字符按照特定规则转换为大写形式 ToTitleSpecial 将字符串中的字符按照特定规则转换为标题形式 ToValidUTF8 将一个字符串中的无效UTF-8字符替换成Unicode替换字符 Trim 去除字符串两端的指定字符 连续的指定字符都会被去除 TrimLeft 去除字符串左边的指定字符 连续的指定字符都会被去除 TrimRight 去除字符串右边的指定字符 连续的指定字符都会被去除 TrimFunc 去除字符串两端满足特定条件的字符 连续的满足条件的字符都会被去除 TrimLeftFunc 去除字符串左边满足特定条件的字符 连续的满足条件的字符都会被去除 TrimRightFunc 去除字符串右边满足特定条件的字符 连续的满足条件的字符都会被去除 TrimSpace 去除字符串两端的空白字符 连续的空白都会被去除 TrimPrefix 去除字符串前缀 TrimSuffix 去除字符串后缀

2024-10-20 13:36:24 · 1 分钟 · 慢步道人

Go builtin包

说明 预声明标识符是指在代码中可以直接使用的标识符,但它们并没有在任何包中声明。这些标识符通常是由Go语言的标准库或编译器提供的,它们在代码中可以直接使用,而不需要导入任何包。 builtin包的作用是为这些预声明标识符提供文档说明,以便开发人员了解它们的用途和用法。通过查看builtin包的文档,开发人员可以了解到哪些预声明标识符是可用的,以及它们的作用和使用方法。 内置函数 函数名 含义 说明 append 将元素追加到切片末尾 容量足够时,不会重新分配内存;容量不足时,会重新分配内存 copy 将切片中的元素复制到另一个切片中,返回复制的元素数量 delete 从映射中删除指定的键值对 len 返回切片、映射、通道或字符串的长度 cap 返回切片、映射或通道的容量 make 为切片、映射或通道分配内存,并返回该类型的零值 max 返回一组可比较类型中的最大值 如果是浮点型且参数中有NaN,则返回NaN min 返回一组可比较类型中的最小值 如果是浮点型且参数中有NaN,则返回NaN new 为指定类型的新值分配内存,并返回指向该类型的零值的指针 complex 创建一个复数 real 返回复数的实部 imag 返回复数的虚部 clear 清除切片、映射中的所有元素 close 关闭通道 只能由发送方调用 panic 停止当前协程的正常执行,引发一个运行时错误,导致程序回溯调用栈 recover 从panic中恢复,并返回panic的值 只能在defer语句中使用 print println 对传入的参数进行格式化,然后将格式化后的结果输出到标准错误 用于引导程序和调试,未来其可能会被修改或移除,不应该在生产环境中使用

2024-10-18 13:35:53 · 1 分钟 · 慢步道人

Go strconv包

Go是强数据类型语言,且不支持隐式类型转换,strconv包是用于字符串和基本数据类型之间转换的。 其它类型转字符串 函数名 含义 说明 FormatBool 布尔型转字符串 FormatInt FormatUint 整形转字符串 需指定进制 FormatFloat 浮点型转字符串 需指定格式、精度、位宽(32/64) FormatComplex 复数型转字符串 需指定格式、精度、位宽(64/128) Itoa 整形转字符串 固定十进制 字符串转其它类型 函数名 含义 说明 ParseBool 字符串转布尔型 1 t T true TRUE True为真,0 f F false FALSE False为假 ParseInt ParseUint 字符串转整形 需指定字符串的进制及转换后的位宽 ParseFloat 字符串转浮点型 需指定转换后的位宽 ParseComplex 字符串转复数 需指定转换后的位宽 Atoi 字符串转整形 固定十进制 其它 函数名 含义 说明 CanBackquote 判断一个字符串是否可以不被修改地放在反引号中 不能包含换行符,除了制表符之外,不能包含其他控制字符 IsGraphic 判断一个Unicode字符是否是图形字符 IsPrint的超集 IsPrint 判断一个Unicode字符是否是可打印字符 IsGraphic的子集 Quote 返回一个用双引号包裹的Go语言字符串字面量 控制字符和由IsPrint定义的不可打印字符会进行转义 QuoteToASCII 返回一个用双引号包裹的Go语言字符串字面量 非ASCII字符以及由IsPrint定义的不可打印字符会进行转义 QuoteToGraphic 返回一个用双引号包裹的Go语言字符串字面量 由IsGraphic定义的非图形字符会进行转义 QuoteRune 返回一个单引号包裹的Go字符字面量 控制字符和由IsPrint定义的不可打印字符会进行转义 QuoteRuneToASCII 返回一个单引号包裹的Go字符字面量 非ASCII字符以及由IsPrint定义的不可打印字符会进行转义 QuoteRuneToGraphic 返回一个单引号包裹的Go字符字面量 由IsGraphic定义的非图形字符会进行转义 AppendBool 布尔型转字符串,结果追加到指定的字节切片,并返回新的字节切片 AppendInt AppendUint 整型转字符串,结果追加到指定的字节切片,并返回新的字节切片 需指定进制 AppendFloat 浮点型转字符串,结果追加到指定的字节切片,并返回新的字节切片 需指定格式、精度、位宽(32/64) AppendQuote Quote处理后的结果追加到指定的字节切片,并返回新的字节切片 AppendQuoteToASCII QuoteToASCII处理后的结果追加到指定的字节切片,并返回新的字节切片 AppendQuoteToGraphic QuoteToGraphic处理后的结果追加到指定的字节切片,并返回新的字节切片 AppendQuoteRune QuoteRune处理后的结果追加到指定的字节切片,并返回新的字节切片 AppendQuoteRuneToASCII QuoteRuneToASCII处理后的结果追加到指定的字节切片,并返回新的字节切片 AppendQuoteRuneToGraphic QuoteRuneToGraphic处理后的结果追加到指定的字节切片,并返回新的字节切片

2024-10-17 13:14:07 · 1 分钟 · 慢步道人

Go fmt包

fmt包提供了格式化输入、输出的功能。 格式化输出 函数名 说明 Print 以默认格式进行格式化,格式化结果输出到os.Stdout Printf 以指定格式进行格式化,格式化结果输出到os.Stdout Println 以默认格式进行格式化,并在末尾添加换行符,格式化结果输出到os.Stdout Fprint 以默认格式进行格式化,格式化结果输出到指定的io.Writer接口 Fprintf 以指定格式进行格式化,格式化结果输出到指定的io.Writer接口 Fprintln 以默认格式进行格式化,并在末尾添加换行符,格式化结果输出到指定的io.Writer接口 Sprint 以默认格式进行格式化,格式化结果以字符串形式返回 Sprintf 以指定格式进行格式化,格式化结果以字符串形式返回 Sprintln 以默认格式进行格式化,并在末尾添加换行符,格式化结果以字符串形式返回 具体格式化规则详见Go 格式化。 格式化输入 函数名 说明 Scan 按默认格式从os.Stdin进行扫描,空格用于分隔数据,换行符按空格处理,扫描结果存入对应的变量 Scanf 按指定格式从os.Stdin进行扫描,扫描结果存入对应的变量 Scanln 按默认格式从os.Stdin进行扫描,空格用于分隔数据,遇换行符时停止扫描,扫描结果存入对应的变量 Fscan 按默认格式从指定的io.Reader接口进行扫描,空格用于分隔数据,换行符按空格处理,扫描结果存入对应的变量 Fscanf 按指定格式从指定的io.Reader接口进行扫描,扫描结果存入对应的变量 Fscanln 按默认格式从指定的io.Reader接口进行扫描,空格用于分隔数据,遇换行符时停止扫描,扫描结果存入对应的变量 Sscan 按默认格式从指定的字符串中进行扫描,空格用于分隔数据,换行符按空格处理,扫描结果存入对应的变量 Sscanf 按指定格式从指定的字符串中进行扫描,扫描结果存入对应的变量 Sscanln 按默认格式从指定的字符串中进行扫描,空格用于分隔数据,遇换行符时停止扫描,扫描结果存入对应的变量 注意:变量前必须要带上&才能成功接收扫描到的数据! 其它 函数名 说明 Append 以默认格式进行格式化,格式化结果追加到指定的字节切片,并返回新的字节切片 Appendf 以指定格式进行格式化,格式化结果追加到指定的字节切片,并返回新的字节切片 Appendln 以默认格式进行格式化,并在末尾添加换行符,格式化结果追加到指定的字节切片,并返回新的字节切片 Errorf 以指定格式进行格式化,格式化结果转为error接口并返回

2024-10-16 20:51:40 · 1 分钟 · 慢步道人

Go 格式化

格式化动词 常规 格式化动词 含义 %v 默认格式 %T 数据的类型 %% %本身 使用%v时不同类型默认对应的格式化动词如下: 数据类型 格式化动词 说明 bool %t int int8 等 %d uint uint8 等 %d %#v时对应%#x float32 complex64 等 %g string %s chan %p pointer %p 布尔型 格式化动词 含义 示例 结果 %t true或false 1>2 false 整型 格式化动词 含义 示例 结果 %b 二进制 90 1011010 %c 对应的 Unicode 字符 90 Z %d 十进制 90 90 %o 八进制 90 132 %O 带0o前缀的八进制 90 0o132 %q 用单引号包括的对应的 Unicode 字符,并且特殊字符会进行转义 90 ‘Z’ %x 小写的十六进制 90 5a %X 大写的十六进制 90 5A %U Unicode 格式:U+1234;与U+%04X相同 90 U+005A 浮点型和复数型 格式化动词 含义 示例 结果 %b 十进制无小数的科学计数法表示浮点数,指数部分是2的幂次方 3....

2024-10-15 21:34:07 · 2 分钟 · 慢步道人

Go的时间格式化

从其它平台迁移而来 就个人而言,对Go的整体评价还是相当不错的,直到遇到了时间格式化。有人说,这是大佬们的浪漫。 直接说对应关系吧: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 //年 2006 <=> yyyy 06 <=> yy //月 01 <=> MM 1 <=> M //日 02 <=> dd 2 <=> d //时 15 <=> hh 3 <=> h //分 04 <=> mm 4 <=> m //秒 05 <=> ss 5 <=> s go 1.20+在time包中又增加了time.DateTime、time.DateOnly、time.TimeOnly三个常量,分别对应2006-01-02 15:04:05、2006-01-02、15:04:05,再也不用专门去记对应关系了。

2022-07-27 21:33:56 · 1 分钟 · 慢步道人

使用gomod

从其它平台迁移而来 初学Go时,用的都是GOPATH模式,要么代码得写在一个固定的路径下,要么得改系统变量,从始至终只有一个项目也就忍了,可明显这是不可能的,多个项目,想想就要抓狂。 还好有GO MOD模式,虽然也看网上的帖子了,不过一直没尝试。终于,还是要亲自尝试下才有长进。 准备 golang v1.11+ 据说要使用GO MOD模式,必须要使用v1.11以上的版本(这里是直接用最新的v1.15.3)。 IDE 好用的果然还是JB家的Goland,不过吾等P民囊中羞涩,还是果断VS Code+插件。 代理 由于众所周知的原因,我们需要准备好代理,代理的使用略。 GO MOD 打开命令行 在GOPATH之外任意新建一个空测试目录,并cd进去 执行命令go mod init XXX(XXX为项目名),会生成一个go.mod文件,内容如下: 1 2 3 module gmtest go 1.15 以使用GoFrame为例, 修改go.mod加上gf 1 2 3 4 5 module gmtest go 1.15 require github.com/gogf/go latest latest表示使用最新版本。 编写Go代码 1 2 3 4 5 6 7 8 9 10 11 package main import ( "fmt" "github.com/gogf/gf" ) func main() { fmt.Println("Hello GF", gf.VERSION) } 执行go run main....

2020-10-26 23:08:47 · 1 分钟 · 慢步道人

从Delphi到Go——接口

从其它平台迁移而来 由于没有太多编写接口的经验,此处仅简单说明语法。后期对接口有更多认知和经验后再进行详细记录。 Delphi Delphi的接口是侵入式接口,并且是单继承的,但类可以同时实现多个接口,类声明时需要显示声明实现了哪些接口。 声明 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 type //直接声明 IMyInterface1 = interface function Func1: Integer; //函数 procedure Proc1(Value: Integer); //过程 property MI: Integer read Func1 write Proc1; //属性 end; //从已有接口继承 IMyInterface2 = interface(IMyInterface1) procedure Proc2; end; //含有 GUID 的接口可以公开给其它进程调用 IMyInterface3 = interface ['{3E51374A-D0E8-4C84-AA30-9634409E45DD}'] procedure Proc3; end; Delphi已经提供了基接口IInterface,自己声明的接口最好从IInterface继承。 实现 1 2 3 4 5 6 7 8 9 10 11 type //含接口的类的声明 TMyClass = class(基类, 接口) public procedure Proc; //接口方法 end; //接口实现 procedure TMyClass....

2020-01-30 12:52:16 · 1 分钟 · 慢步道人