文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Go语言的开发工具如何使用

2023-07-02 09:39

关注

这篇文章主要讲解了“Go语言的开发工具如何使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Go语言的开发工具如何使用”吧!

json-to-go

Go语言的开发工具如何使用

输入:

[    {        "input_index": 0,        "candidate_index": 0,        "delivery_line_1": "1 N Rosedale St",        "components": {            "primary_number": "1",            "street_predirection": "N",            "street_name": "Rosedale",            "street_suffix": "St",            "city_name": "Baltimore",            "state_abbreviation": "MD"        }    }]

输出:

type AutoGenerated []struct {    InputIndex     int    `json:"input_index"`    CandidateIndex int    `json:"candidate_index"`    DeliveryLine1  string `json:"delivery_line_1"`    Components     struct {        PrimaryNumber      string `json:"primary_number"`        StreetPredirection string `json:"street_predirection"`        StreetName         string `json:"street_name"`        StreetSuffix       string `json:"street_suffix"`        CityName           string `json:"city_name"`        StateAbbreviation  string `json:"state_abbreviation"`    } `json:"components"`}

yaml-to-go

Go语言的开发工具如何使用

输入:

image: golang:latestbefore_script:  - mkdir -p $GOPATH/src/$(dirname $REPO_NAME)  - ln -svf $CI_PROJECT_DIR $GOPATH/src/$REPO_NAME  - cd $GOPATH/src/$REPO_NAMEstages:  - test  - build  - deployformat:  stage: test  script:    - go fmt $(go list ./... | grep -v /vendor/)    - go vet $(go list ./... | grep -v /vendor/)    - go test -race $(go list ./... | grep -v /vendor/)

输出:

type AutoGenerated struct {    Image        string   `yaml:"image"`    BeforeScript []string `yaml:"before_script"`    Stages       []string `yaml:"stages"`    Format       struct {        Stage  string   `yaml:"stage"`        Script []string `yaml:"script"`    } `yaml:"format"`}

table-to-go

假设有这样一张表:

CREATE TABLE `prefix_user` (  `Id` int(11) NOT NULL AUTO_INCREMENT,  `Email` varchar(32) NOT NULL DEFAULT '' COMMENT '邮箱',  `Password` varchar(32) NOT NULL DEFAULT '' COMMENT '密码',  `CreatedAt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,  PRIMARY KEY (`Id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表'

使用方式分两种,分别是命令行调用和写 Go 代码:

命令行调用

下载对应平台的可执行文件, 下载地址:

https://github.com/gohouse/converter/releases

命令行执行:

./table2struct-linux.v0.0.3.bin -file model.go -dsn xxx -table user

参数说明:

-dsn            string 数据库dsn配置-enableJsonTag  bool 是否添加json的tag-file           string 保存路径-packageName    string 包名-prefix         string 表前缀-realNameMethod string 结构体对应的表名-table          string 要迁移的表-tagKey         string tag的key

Go 代码调用

安装库:

go get github.com/gohouse/converter

代码:

package mainimport (    "fmt"    "github.com/gohouse/converter")func main() {    // 初始化    t2t := converter.NewTable2Struct()    // 个性化配置    t2t.Config(&converter.T2tConfig{        // 如果字段首字母本来就是大写, 就不添加tag, 默认false添加, true不添加        RmTagIfUcFirsted: false,        // tag的字段名字是否转换为小写, 如果本身有大写字母的话, 默认false不转        TagToLower: false,        // 字段首字母大写的同时, 是否要把其他字母转换为小写,默认false不转换        UcFirstOnly: false,        //// 每个struct放入单独的文件,默认false,放入同一个文件(暂未提供)        //SeperatFile: false,    })    // 开始迁移转换    err := t2t.        // 指定某个表,如果不指定,则默认全部表都迁移        Table("user").        // 表前缀        Prefix("prefix_").        // 是否添加json tag        EnableJsonTag(true).        // 生成struct的包名(默认为空的话, 则取名为: package model)        PackageName("model").        // tag字段的key值,默认是orm        TagKey("orm").        // 是否添加结构体方法获取表名        RealNameMethod("TableName").        // 生成的结构体保存路径        SavePath("/Users/fizz/go/src/github.com/gohouse/gupiao/model/model.go").        // 数据库dsn,这里可以使用 t2t.DB() 代替,参数为 *sql.DB 对象        Dsn("root:root@tcp(localhost:3306)/test?charset=utf8").        // 执行        Run()    fmt.Println(err)}

输出:

package modelimport "time"type User struct {    Id         int     `json:"Id" orm:"Id"`    Email      string  `json:"Email" orm:"Email"`           // 邮箱    Password   string  `json:"Password" orm:"Password"`     // 密码    CreatedAt  string  `json:"CreatedAt" orm:"CreatedAt"`}func (*User) TableName() string {    return "user"}

感谢各位的阅读,以上就是“Go语言的开发工具如何使用”的内容了,经过本文的学习后,相信大家对Go语言的开发工具如何使用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯