Golang
muyouking11
这个作者很懒,什么都没留下…
展开
-
Golang 随机数
package mainimport ( "fmt" "math/rand" "time")func main() { rand.Seed(time.Now().UnixNano()) //0-100的随机数 fmt.Println("=====0-63的随机数=====") for i := 0; i < 10; i++ { fmt.Println(rand.Intn(64)) } fmt.Println("=====3-40的随机数=====") //3-63的原创 2020-08-22 09:42:52 · 222 阅读 · 0 评论 -
sync.Once 的单例示例
package mainimport( "fmt" "sync")//想要单例实现的结构体type Instance struct{}var( once sync.Once instance *Instance)func NewInstance()*Instance{ //调用 sync.Once结构体的Do方法, //里面传入你想要单例实例化哪个结构体的具体实现. once.Do(func(){ instance = &原创 2020-08-11 09:35:18 · 170 阅读 · 0 评论 -
golang 斐波那契数列
package dpfunc feibonaci(num int) int { if num == 1 || num == 2 { return 1 } return feibonaci(num-1) + feibonaci(num-2)}func FeibonaciSlice(n int)[]int { a := []int{} for i :=1;i <=n;i++{ a = append(a, feibonaci(i)) } return a}原创 2020-07-11 09:35:02 · 360 阅读 · 0 评论 -
golang 插入排序
package hsort//插入排序func InserSort(arr []int) { arrcount := len(arr) if arrcount < 2 { return } for i := 1; i < arrcount; i++ { //将j和左边的数一个个对比,跳出条件是j不能小于等于0, //并且大于它左边的数。因为它左边的数都已排好序 for j := i; j > 0 && arr[j] < arr[j-1];原创 2020-07-09 16:01:51 · 127 阅读 · 0 评论 -
golang 快速排序
package hsortfunc Qsort(arr []int, left, right int) { //先对比左右下标的值是否是左小右大 if left < right { mid := getMid(arr, left, right) Qsort(arr, left, mid-1) //将左半边递归 Qsort(arr, mid+1, right) //将右半边递归 } //if end}func getMid(arr []int, left, right in原创 2020-07-09 15:09:13 · 106 阅读 · 0 评论 -
golang 归并排序
package sort//归并排序func MergeSort(arr []int) { arrcount := len(arr) if arrcount > 1 { MergeSort(arr[:arrcount/2]) MergeSort(arr[arrcount/2:]) res:= Merge(arr[:arrcount/2],arr[arrcount/2:]) copy(arr,res) }}func Merge(arr1,arr2 []int )[]int原创 2020-07-08 09:55:41 · 122 阅读 · 0 评论 -
Golang 使用const定义枚举
package mainimport ( "fmt")// 使用const 来定义一个Color的枚举type Color intconst ( RED Color = iota BLACK)type Tree struct { Data int //数据 Color Color //颜色}func main() { t1 := rbtree.Tree{1,RED} fmt.Println(t1)}//{1 0}...原创 2020-07-04 17:16:25 · 1683 阅读 · 0 评论 -
Golang正则表达式 与 strings 结合获取文件信息
package mainimport ( "bufio" "fmt" "io" "io/ioutil" "os" "regexp" "strings")func main() { path := `.\info\1239875_low.txt` GetMaxInfo(path)}func GetMaxInfo(path string) { //path := `.\info\1239875_low.txt` //fmt.Println(os.Getwd()) //f原创 2020-05-24 07:47:54 · 1404 阅读 · 0 评论 -
Golang字符串遍历
```gopackage mainimport ( "fmt")func main() { v4 :='床前明月光,疑似地上霜.举着望明月,低头思故乡.` v6 := []rune(v4) v7 := "故" for k, v := range v6 { if string(v) == v7{ fmt.Printf("找到字符---\"%s\",\n其索引为%d\n",v7,k) ...原创 2020-05-12 17:21:55 · 1036 阅读 · 0 评论 -
Golang 正则提取相关信息
package mainimport ( "encoding/csv" "fmt" "github.com/hyq/Tools" "os" "path/filepath" "regexp" "strconv" "strings")func main() { Writecsv(GetKocSimplyInfo("htmls2"),"test.csv")}func GetKocSimplyInfo(path string) []kocsimply{ filelist := To原创 2020-05-11 15:51:41 · 901 阅读 · 0 评论 -
Go 二分查找法
func search(nums []int, target int) int { min := 0 max := len(nums) - 1 mid := max - min for min <= max { mid = min + (max-mid)/2 if nums[mid] == target { return mid break } else if...原创 2020-04-02 08:35:44 · 128 阅读 · 0 评论 -
将GO 的并发简单封装成一个函数
# 将GO 的并发简单封装成一个函数```go///filelist 待处理的切片///f 具体执行的函数 --例如,遍历filelist,拿到每一个元素,作为参加数传给f函数进行处理func H_Goroutine(filelist []string,f func(s string,c chan string)) { c := make(chan string,,len(fi...原创 2020-04-02 08:27:36 · 345 阅读 · 0 评论 -
VScode 调试Golang
1,在VScode找到Go插件2,在VSCode里的菜单栏里找到"查看"-"调试"-"添加配置",打开一个launch.json文件,将下面的复制进去替换.注意将"env": { "GOPATH":"D:/Develop/vscodegolang" } 里的GOPATH换成自己的工程路径(包含src,bin的文件夹)...原创 2019-06-21 12:59:52 · 1417 阅读 · 0 评论 -
Golang 变参
变参,本质上是一个切片,只能接受一到多个同类型参数,且必须放到参数列表尾部. 将切片作为变参时,须进行展开操作,如果是数组,先将其转换为切片。如果需要对多个数组或切片里的元素进行相同的数据处理,这时就可以运用变参,将数组或切片作为参数传递进函数里。package mainimport("fmt")func test_bianchan(a ...int) { for ...原创 2018-10-10 09:20:26 · 549 阅读 · 0 评论 -
Golang 函数多参数重构为复合类型
如果一个函数参数过多,可以重构为一个复合结构类型,如下package mainimport ( "fmt" "log" "time")/* 如果一个函数参数过多,可以重构为一个复合结构类型,如下*/type serverOptino struct { address string port int path string timeout time.D...原创 2018-10-10 08:51:30 · 1483 阅读 · 0 评论