Go语言学习的坑爹历程
鄙人暑期实习,需要用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语言学习的坑爹历程的更多相关文章
- 学习HEXO的历程
前言: 简介 开始搭建 命令 API测试 逛github相关的帖子时,发现了hexo.正好想要做一个个人的博客,用来记录自己的各类感悟,所以花一些时间学习学习,以后博客可以放github,省得去注册c ...
- C语言学习 第八次作业总结
本次作业其实没有新的内容,主要就是复习上一次的一维数组的相关内容.冯老师布置了5道题目,其中涉及到一些比较简单的排序或者是查找的方法.因为数据很少,所以直接使用for循环遍历就可以了. 关于本次作业, ...
- C语言学习 第七次作业总结
C语言学习 第七次作业总结 数组可以分为数组和多下标数组(在传统的国内C语言书本中,将其称为二/多维数组). 数组名称 在之前的课程中,大家应该都有印象,对于int a这样的定义,会为变量 a 声明一 ...
- 技能收获与C语言学习
你有什么技能比大多人(超过90%以上)更好? 我会的东西很多,喜欢的东西太多,但是很遗憾广而不专,会而不精.学了很多东西我都是为了娱乐,因为以前我们那里过于强调学习,很多爱好也都被扼杀在摇篮里.我觉得 ...
- 一份关于Swift语言学习资源的整理文件
一份关于Swift语言学习资源的整理文件 周银辉 在这里下载 https://github.com/ipader/SwiftGuide
- go语言学习笔记
Go语言学习基本类型Bool 取值范围:true,false (不可以用数字代替)Int/uint 根据平台可能为32或64位int8/uint8 长度:1字节 取值范围-128~127/0~255b ...
- 20155206赵飞技能获取经验,C语言学习感想与对JAVA的学习目标
自己较强的技能获取经验. 1:实话实说我自己是没有哪个技能可以超过90%的人的,只有自认为做的还可以的一些事情,例如打篮球,office软件的应用,一百米跑.至于其他方面就是很平庸了. 2:经验主要有 ...
- HTML语言学习笔记(会更新)
# HTML语言学习笔记(会更新) 一个html文件是由一系列的元素和标签组成的. 标签: 1.<html></html> 表示该文件为超文本标记语言(HTML)编写的.成对出 ...
- 20155229-付钰涵-分析自我技能延展到c语言学习状况
我的小技能 我记得幼儿园时表演的舞蹈,也记得从水彩到素描的学习,还记得小学和初中获得的钢琴省级奖项. 舞蹈止于一年级,绘画止于三年级,钢琴从学前班到高一那十年的时间里有过断续. 03年-04年的那个冬 ...
随机推荐
- IDEA快速创建maven项目
遇到问题不要急,不要怕. 一. 二. 三. 四.Finish进来之后,项目会加载一会,之后会是下面这样子. 五.继续往下面配置,建立java和resorces文件夹 六.下面配置tomcat服 ...
- 数组容器(ArrayList)设计与Java实现,看完这个你不懂ArrayList,你找我!!!
数组容器(ArrayList)设计与Java实现 本篇文章主要跟大家介绍我们最常使用的一种容器ArrayList.Vector的原理,并且自己使用Java实现自己的数组容器MyArrayList,让自 ...
- day11 - 多线程
1内容 进程.线程介绍 Java中 线程的实现方式 Thread 类 Runnable 接口 Callable 接口 线程相关的方法 线程安全问题 - 同步技术 线程等待唤醒机制 进程(Process ...
- HelloWord程序代码的编写和HelloWord程序的编译运行
1.新建文件夹,存放代码 2.新建一个Java文件 文件后缀名.java(Hello.java) 3.编写代码public class Hello{public static void main(St ...
- spingboot打jar包
pom.xml文件中packaging为jar <packaging>jar</packaging> 安装插件 <plugin> <groupId>or ...
- APISpace 绕口令API接口 免费好用
绕口令又称急口令.吃口令.拗口令等.是一种民间传统的语言游戏 ,由于它是将若干双声.叠韵词或发音相同.相近的语.词有意集中在一起,组成简单.有趣的语韵,要求快速念出,所以读起来使人感到节奏感强,妙趣横 ...
- 2022-07-15/16 第一小组 田龙月 管理系统javaSE
JavaSE小项目(基础语法:二分查找:冒泡排序)--还是存在bug:删除一个数组内一组数据后面只有一组后面数据能向前移位 (YY:使用"方法"应该会好很多,代码架构会清晰一点)未 ...
- Template -「高斯消元」
#include <cstdio> #include <vector> #include <algorithm> using namespace std; doub ...
- JUC源码学习笔记3——AQS等待队列和CyclicBarrier,BlockingQueue
一丶Condition 1.概述 任何一个java对象都拥有一组定义在Object中的监视器方法--wait(),wait(long timeout),notify(),和notifyAll()方法, ...
- 小试牛刀:Go 反射帮我把 Excel 转成 Struct
背景 起因于最近的一项工作:我们会定义一些关键指标来衡量当前系统的健康状态,然后配置对应的报警规则来进行监控报警.但是当前的报警规则会产生大量的误报,需要进行优化.我所负责的是将一些和用户行为指标相关 ...