写点什么

Go- 包的使用

用户头像
HelloBug
关注
发布于: 3 小时前
Go- 包的使用

Go 学习笔记,学习内容《Go入门指南》


主要介绍以下内容:

  • regexp 包

  • sync 包

  • big 包


Go 包检索地址:gowolker 包含每个包的函数说明和使用方法


代码示例可以直接运行

package main
import ( "fmt" "math" "math/big" "regexp" "strconv")
func printDivider(str ...string) { fmt.Println() fmt.Println("-----------------------------------------------") if len(str) > 0 { fmt.Println(str) }}
func main() { /* regexp包 */ printDivider("regexp包") searchIn := "Scores about John: 283.1001 88.2" pat := "[0-9]+.[0-9]+"
if ok, _ := regexp.Match(pat, []byte(searchIn)); ok { // 查找指定格式是否存在 fmt.Println("Match Found") // 输出:Match Found }
f := func(s string) string { v, _ := strconv.ParseFloat(s, 32) return strconv.FormatFloat(v*2, 'f', 2, 32) }
re, _ := regexp.Compile(pat) str1 := re.ReplaceAllString(searchIn, "##.#") // 将指定模式的字符串全部替换 fmt.Println(str1) // 输出:Scores about John: ##.# ##.#
str2 := re.ReplaceAllStringFunc(searchIn, f) // 匹配模式的字符串作为参数,用函数返回值替换字符串 fmt.Println(str2) // 输出:Scores about John: 566.20 176.40
/* sync包 1、加锁操作:通过加锁操作实现资源的互斥和原子操作 https://gowalker.org/sync#Mutex 2、函数的互斥调用:once.Do(call) https://gowalker.org/sync#Once_Do */
/* big包 float64精确到小数点之后15位 */ im := big.NewInt(math.MaxInt64) in := im io := big.NewInt(1984) ip := big.NewInt(1) fmt.Println(im, in, io, ip) // 输出:9223372036854775807 9223372036854775807 1984 1
num1 := big.NewInt(1) num2 := big.NewInt(2) num3 := big.NewInt(3) num4 := big.NewInt(100) fmt.Println(num1.Mul(num2, num3)) // num1 = num2 * num3 输出:6 fmt.Println(num1) // 输出:6
fmt.Println(num1.Mul(num2, num3).Add(num1, num4)) // num1 = num2 * num3; num1 = num1 + num4; 输出:106 fmt.Println(num1) // 输出:106}
复制代码


发布于: 3 小时前阅读数: 2
用户头像

HelloBug

关注

还未添加个人签名 2018.09.20 加入

还未添加个人简介

评论

发布
暂无评论
Go- 包的使用