脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Golang - 深入了解Golang包的获取方法

深入了解Golang包的获取方法

2022-07-13 13:09Livingbody Golang

Go语言有一个获取远程包的工具就是go get,本文将详细为大家介绍一下Go语言包的获取的方法,文中的示例代码讲解详细,感兴趣的可以了解一下

1.获取远程包

go 语言有一个获取远程包的工具就是 go get,目前 go get 支持多数开源社区 (例如:github、googlecode、bitbucket、Launchpad)

例如:

?
1
go get github.com/astaxie/beedb

在pkg目录下tree /f可查看到安装的包如下所示:

深入了解Golang包的获取方法

2.应用

如下代码所示,可以应用远程下载的go第三方库文件,连接sqllite。

链接地址

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
package main
 
import (
    "fmt"
    "github.com/astaxie/beedb"
    _ "github.com/mattn/go-sqlite3"
    "time"
    "database/sql"
)
 
/*
CREATE TABLE `userinfo` (
    `uid` INTEGER PRIMARY KEY AUTOINCREMENT,
    `username` VARCHAR(64) NULL,
    `departname` VARCHAR(64) NULL,
    `created` DATE NULL
);
CREATE TABLE `userdeatail` (
    `uid` INT(10) NULL,
    `intro` TEXT NULL,
    `profile` TEXT NULL,
    PRIMARY KEY (`uid`)
);
*/
 
var orm beedb.Model
 
type Userinfo struct {
    Uid        int `beedb:"PK"`
    Username   string
    Departname string
    Created    string
}
 
func main() {
    db, err := sql.Open("sqlite3", "./asta.db")
    if err != nil {
        panic(err)
    }
    orm = beedb.New(db)
    //insert()
    //insertsql()
    // a := selectone()
    // fmt.Println(a)
 
    // b := selectall()
    // fmt.Println(b)
 
    // update()
 
    // updatesql()
 
    // findmap()
 
    // groupby()
 
    // jointable()
 
    // delete()
 
    //deletesql()
 
    //deleteall()
}
 
func insert() {
    //save data
    var saveone Userinfo
    saveone.Username = "Test Add User"
    saveone.Departname = "Test Add Departname"
    saveone.Created = time.Now().Format("2006-01-02 15:04:05")
    orm.Save(&saveone)
    fmt.Println(saveone)
}
 
func insertsql() {
    // add one
    add := make(map[string]interface{})
    add["username"] = "astaxie"
    add["departname"] = "cloud develop"
    add["created"] = "2012-12-02"
    orm.SetTable("userinfo").Insert(add)
}
 
func selectone() Userinfo {
    //get one info
    var one Userinfo
    orm.Where("uid=?", 1).Find(&one)
    return one
}
 
func selectall() []Userinfo {
    //get all data
    var alluser []Userinfo
    orm.Limit(10).Where("uid>?", 1).FindAll(&alluser)
    return alluser
}
 
func update() {
    // //update data
    var saveone Userinfo
    saveone.Uid = 1
    saveone.Username = "Update Username"
    saveone.Departname = "Update Departname"
    saveone.Created = time.Now().Format("2006-01-02 15:04:05")
    orm.Save(&saveone)
    fmt.Println(saveone)
}
 
func updatesql() {
    //original SQL update
    t := make(map[string]interface{})
    t["username"] = "updateastaxie"
    //update one
    orm.SetTable("userinfo").SetPK("uid").Where(2).Update(t)
    //update batch
    orm.SetTable("userinfo").Where("uid>?", 3).Update(t)
}
 
func findmap() {
    //Original SQL Backinfo resultsSlice []map[string][]byte
    //default PrimaryKey id
    c, _ := orm.SetTable("userinfo").SetPK("uid").Where(2).Select("uid,username").FindMap()
    fmt.Println(c)
}
 
func groupby() {
    //Original SQL Group By
    b, _ := orm.SetTable("userinfo").GroupBy("username").Having("username='updateastaxie'").FindMap()
    fmt.Println(b)
}
 
func jointable() {
    //Original SQL Join Table
    a, _ := orm.SetTable("userinfo").Join("LEFT", "userdeatail", "userinfo.uid=userdeatail.uid").Where("userinfo.uid=?", 1).Select("userinfo.uid,userinfo.username,userdeatail.profile").FindMap()
    fmt.Println(a)
}
 
func delete() {
    // // //delete one data
    saveone := selectone()
    orm.Delete(&saveone)
}
 
func deletesql() {
    //original SQL delete
    orm.SetTable("userinfo").Where("uid>?", 2).DeleteRow()
}
 
func deleteall() {
    // //delete all data
    alluser := selectall()
    orm.DeleteAll(&alluser)
}

到此这篇关于深入了解Golang包的获取方法的文章就介绍到这了,更多相关Golang包获取内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://juejin.cn/post/7119523086352777247

延伸 · 阅读

精彩推荐
  • Golanggolang 获取字符串长度的案例

    golang 获取字符串长度的案例

    这篇文章主要介绍了golang 获取字符串长度的案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    王者之路0015932021-03-22
  • Golang浅析Go语言版本的forgery

    浅析Go语言版本的forgery

    使用过Python语言的朋友们可能使用过 forgery_py ,它是一个伪造数据的工具。这篇文章主要介绍了Go语言版本的forgery,需要的朋友可以参考下 ...

    xingyys5472020-05-17
  • Golangubuntu下搭建Go语言(golang)环境

    ubuntu下搭建Go语言(golang)环境

    这篇文章主要介绍了ubuntu下搭建Go语言(golang)环境,需要的朋友可以参考下 ...

    hebedich3032020-04-12
  • GolangGo语言开发环境搭建与初探(Windows平台下)

    Go语言开发环境搭建与初探(Windows平台下)

    Go是Google开发的一种编译型,並發型,并具有垃圾回收功能的编程语言,可能很多人想学习go语言,那么首先就要了解go语言的环境配置方法 ...

    mdxy-dxy2102020-04-03
  • Golang手把手教你Golang的协程池设计

    手把手教你Golang的协程池设计

    在很多公司都在陆续的搭建golang的语言栈,大家有没有想过为什么会出现这种情况?今天咱们就来一步一步的揭开协程池的面纱,如果你没有接触过go的协程...

    程序员小饭3752021-06-08
  • GolangC语言的10大基础算法

    C语言的10大基础算法

    算法是一个程序和软件的灵魂,作为一名优秀的程序员,只有对一些基础的算法有着全面的掌握,才会在设计程序和编写代码的过程中显得得心应手。这篇...

    翻斗街扛把子胡图图3472020-05-28
  • Golanggo语言生成随机数和随机字符串的实现方法

    go语言生成随机数和随机字符串的实现方法

    随机数在很多时候都可以用到,尤其是登录时,本文就详细的介绍一下go语言生成随机数和随机字符串的实现方法,具有一定的参考价值,感兴趣的可以了...

    kuteng10282022-01-20
  • GolangGo语言字典(map)用法实例分析【创建,填充,遍历,查找,修改,删除】

    Go语言字典(map)用法实例分析【创建,填充,遍历,查找,修改,删除】

    这篇文章主要介绍了Go语言字典(map)用法,结合实例形式较为详细的分析了Go语言字典的创建、填充、遍历、查找、修改、删除等操作相关实现技巧,需要的朋...

    52PHP4842020-05-05