鄙人暑期实习,需要用Go语言进行编程

在go语言中,结构体的定义只支持变量的声明,成员函数是采用“接口方法”来实现的

留一个成员定义的模板在此

package main

import (
"fmt"
"math"
) type point struct {
x float64
y float64
} func (pt point) getDistance() float64 {
return math.Sqrt(pt.x*pt.x + pt.y*pt.y)
} func main() {
pointA := point{3, 4}
fmt.Println(pointA.getDistance())
}
map[string]interface{}转struct代码
package main

import (
"fmt"
"github.com/mitchellh/mapstructure"
)
type student struct{
id int `json:"id"`
Name string `json:"name"`
Adress []string `json:"adress"`
}
func main() {
val := map[string]interface{}{
"id":1,
"name":"xiaoming",
"adress":[]string{"beijing","nanjing"},
}
stu := student{}
err := mapstructure.Decode(val,&stu)
if err != nil {
fmt.Println(err.Error())
}
fmt.Println("val:")
fmt.Println(val)
fmt.Println("struct:")
fmt.Println(stu)
}

  

gorm通过结构体实现CRUD的代码如下:

package main

import (
"fmt" "github.com/mitchellh/mapstructure"
"gorm.io/driver/mysql"
"gorm.io/gorm"
) //大小写的坑!!!!!!
type User struct {
Id int32 `gorm:"column:id;primary_key"`
Name string `gorm:"column:name"`
} func AddToDB(id int32, name string) {
user := User{
Id: id,
Name: name,
}
fmt.Println("user = ", user)
DB.Table("test_table").Create(&user)
} var DB *gorm.DB
var err error func RemoveFromDB() {
//支持移除多个
DB.Table("test_table").Where("id<=?", 102).Delete(nil)
} func UpdateFromDB_new() {
var need_modify = User{104, "modify2"}
DB.Table("test_table").Where("id<=104").Updates(need_modify)
} func main() {
DB, err = gorm.Open(mysql.New(mysql.Config{
//root表示数据库账号,:和@中间是密码(这里没有设置)
//tcp中间的地址和端口表示连接的数据库的ip地址和端口
//localtest_alpahinf表示当前选择的数据库名
//其余信息喂默认信息
DSN: "root:@tcp(127.0.0.1:3306)/localtest_alphainf?charset=utf8mb4&parseTime=True&loc=Local",
}),
) //AddToDB(1234, "alphainf")
//AddToDB(114, "beta")
//AddToDB(104, "orzlyy") UpdateFromDB_new() mp := make(map[string]interface{})
DB.Table("test_table").Where("id = 114").Find(mp)
now := User{}
mapstructure.Decode(mp, &now)
fmt.Println(now) }

  

 

Go语言学习的坑爹历程的更多相关文章

  1. 学习HEXO的历程

    前言: 简介 开始搭建 命令 API测试 逛github相关的帖子时,发现了hexo.正好想要做一个个人的博客,用来记录自己的各类感悟,所以花一些时间学习学习,以后博客可以放github,省得去注册c ...

  2. C语言学习 第八次作业总结

    本次作业其实没有新的内容,主要就是复习上一次的一维数组的相关内容.冯老师布置了5道题目,其中涉及到一些比较简单的排序或者是查找的方法.因为数据很少,所以直接使用for循环遍历就可以了. 关于本次作业, ...

  3. C语言学习 第七次作业总结

    C语言学习 第七次作业总结 数组可以分为数组和多下标数组(在传统的国内C语言书本中,将其称为二/多维数组). 数组名称 在之前的课程中,大家应该都有印象,对于int a这样的定义,会为变量 a 声明一 ...

  4. 技能收获与C语言学习

    你有什么技能比大多人(超过90%以上)更好? 我会的东西很多,喜欢的东西太多,但是很遗憾广而不专,会而不精.学了很多东西我都是为了娱乐,因为以前我们那里过于强调学习,很多爱好也都被扼杀在摇篮里.我觉得 ...

  5. 一份关于Swift语言学习资源的整理文件

    一份关于Swift语言学习资源的整理文件     周银辉 在这里下载 https://github.com/ipader/SwiftGuide

  6. go语言学习笔记

    Go语言学习基本类型Bool 取值范围:true,false (不可以用数字代替)Int/uint 根据平台可能为32或64位int8/uint8 长度:1字节 取值范围-128~127/0~255b ...

  7. 20155206赵飞技能获取经验,C语言学习感想与对JAVA的学习目标

    自己较强的技能获取经验. 1:实话实说我自己是没有哪个技能可以超过90%的人的,只有自认为做的还可以的一些事情,例如打篮球,office软件的应用,一百米跑.至于其他方面就是很平庸了. 2:经验主要有 ...

  8. HTML语言学习笔记(会更新)

    # HTML语言学习笔记(会更新) 一个html文件是由一系列的元素和标签组成的. 标签: 1.<html></html> 表示该文件为超文本标记语言(HTML)编写的.成对出 ...

  9. 20155229-付钰涵-分析自我技能延展到c语言学习状况

    我的小技能 我记得幼儿园时表演的舞蹈,也记得从水彩到素描的学习,还记得小学和初中获得的钢琴省级奖项. 舞蹈止于一年级,绘画止于三年级,钢琴从学前班到高一那十年的时间里有过断续. 03年-04年的那个冬 ...

随机推荐

  1. 简单性能测试:springboot-2.x vs actix-web-4.x benchmark

    性能测试:springboot-2.x vs actix-web-4.x benchmark 转载请注明出处 https://www.cnblogs.com/funnyzpc/p/15956465.h ...

  2. NC50038 kotori和糖果

    NC50038 kotori和糖果 题目 题目描述 kotori共有 \(n\) 块糖果,每块糖果的初始状态是分散的,她想把这些糖果聚在一堆.但她每次只能把两堆糖果合并成一堆. 已知把两堆数量为 \( ...

  3. 内存分析器 (MAT)

    内存分析器 (MAT) 1. 内存分析器 (MAT) 1.1   MAT介绍 MAT是Memory Analyzer tool的缩写.指分析工具. 1.2   MAT作用 Eclipse Memory ...

  4. 没想到吧,Spring中还有一招集合注入的写法

    原创:微信公众号 码农参上,欢迎分享,转载请保留出处. 哈喽大家好啊,我是Hydra. Spring作为项目中不可缺少的底层框架,提供的最基础的功能就是bean的管理了.bean的注入相信大家都比较熟 ...

  5. MyBatis项目创建

    一.开发环境的准备 总览: mybatis搭建过程: 1.导入jar 2.创建mybatis的核心(全局)配置文件mybatis-config.xml,并配置 3.创建映射文件XxxMapper.xm ...

  6. Netty-ProtobufVarint32

    效果 ProtobufVarint32LengthFieldPrepender编码器用于在数据最前面添加Varint32,表示数据长度 ProtobufVarint32FrameDecoder是相对应 ...

  7. AlexNet—论文分析及复现

    AlexNet卷积神经网络是由Alex Krizhevsky等人在2012年的ImagNet图像识别大赛获得冠军的一个卷积神经网络,该网络放到现在相对简单,但也是深度学习不错的卷积神经网络.论文:&l ...

  8. Java学习 (九)基础篇 包机制&JavaDoc

    包机制 为了更好地组织类,Java提供了包机制,用于区别类名的命名空间 包语句的语法为: package pkg[.pkg2[.pkg3...]]; 一般利用公司域名倒置作为包名:com.feng.x ...

  9. 不安装运行时运行.NET程序

    好久没写文章了,有些同学问我公众号是不是废了?其实并没有.其实想写的东西很多很多,主要是最近公司比较忙,以及一些其他个人原因没有时间来更新文章.这几天抽空写了一点点东西,证明公众号还活着. 长久以来的 ...

  10. 兔起鹘落全端涵盖,Go lang1.18入门精炼教程,由白丁入鸿儒,全平台(Sublime 4)Go lang开发环境搭建EP00

    Go lang,为并发而生的静态语言,源于C语言又不拘泥于性能,高效却不流于古板,Python灵活,略输性能,Java严谨,稍逊风骚.君不见各大厂牌均纷纷使用Go lang对自己的高并发业务进行重构, ...