鄙人暑期实习,需要用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. Linux shell环境的配置

    shell配置文件分类 按生效范围分类:全局和局部 按登录方式分类:交互式和非交互式 按功能分类:profile和bashrc shell配置文件按生效范围分类: 全局配置:针对有所用户有效 /etc ...

  2. python——5行代码采集3000+上市公司信息

    毕业季也到了找工作的季节了,很多小伙伴都会一家一家的公司去看,这得多浪费时间啊.今天用Python教大家怎么采集公司的信息,相信大家会很喜欢这个教程的,nice! 基本环境配置 版本:Python3 ...

  3. halcon 基础总结(一)裁切图片并旋转图像

    ​ 第一步当然是读取图像了:read_image (Image, 'C:/Users/HJ/Desktop/test_image/b.jpg') ​ 第二步:二值化.二值化.因为我这里的物体是黑色的, ...

  4. lerna源码阅读

    能够找到入口文件 能够本地调试

  5. Tomcat 安装及配置,创建动态的web工程

    Tomcat可以认为是对Servlet标准的实现,是一个具体的Servlet容器. 1)        将Tomcat的安装包解压到磁盘的任意位(非中文无空格) 2)        Tomcat服务的 ...

  6. Java多线程交替打印

    1. synchronized实现双线程交替打印 class Print implements Runnable{ static int i=0; static final int n=100; @O ...

  7. 如何在Excel/WPS表格中批量查询快递信息?

    如何在Excel/WPS表格中批量查询快递信息? 干电商的小伙伴们还在为如何批量查询快递物流信息发愁吗?别着急,这篇文章或许能够帮助到您. 首先给大家看一下查询的具体成果: 第一步:安装Excel网络 ...

  8. Java学习 (六)基础篇 类型转换

    类型转换 由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换 字节大小(容量)-> 低--------------------------------------------- ...

  9. MYSQL的Java操作器——JDBC

    MYSQL的Java操作器--JDBC 在学习了Mysql之后,我们就要把Mysql和我们之前所学习的Java所结合起来 而JDBC就是这样一种工具:帮助我们使用Java语言来操作Mysql数据库 J ...

  10. Apache DolphinScheduler 如何从 1.2.1 升级到 1.3.4

    关于 Apache DolphinScheduler Apache DolphinScheduler(incubator) 于 17 年在易观数科立项, 19 年 8 月进入 Apache 孵化器,已 ...