go语言驼峰法 驼峰转换工具( 三 )


goroutine 是轻量级线程 , goroutine 的调度是由 Golang 运行时进行管理的 。
同一个程序中的所有 goroutine 共享同一个地址空间 。
语法格式如下:
通道(channel)是用来传递数据的一个数据结构 。
通道的声明
通道可用于两个 goroutine 之间通过传递一个指定类型的值来同步运行和通讯 。操作符 - 用于指定通道的方向 , 发送或接收 。如果未指定方向,则为双向通道 。
[这里有比较详细的用例]
go里面的空接口可以指代任何类型(无论是变量还是函数)
声明空接口
go里面的的强制类型转换语法为:
int(data)
如果是接口类型的强制转成其他类型的语法为:
go里面的强制转换是将值复制过去,所以在数据量的时候有比较高的运行代价
Go开发中结构体 model、dto 、time格式问题model层不允许使用 jsongo语言驼峰法,dto层又重复造轮子,一个表的字段可能20个左右,那么赋值语句难受死go语言驼峰法了 。
其次就是json直接解析,model层的time.Time,完蛋格式不对,返回的数据不对 。
比如
这种情况,无法解决,就需要必须重写一个dto 。
那么如何解决这个问题呢,本人思考了一段时间,最终使用Map来解决 。
那么反射会遇到,各种奇葩的书写方式,有些人什么都出传入指针 , 有些人各种interface{} 隐藏转换,反正就是太过于差异化 。
所以就是需要解决,如何准确的拿到Value对象,下面是go语言驼峰法我写的一个工具类
解决这个问题,开干
下划线如何解决,结构体的字段属于驼峰命名法,怎么解决呢go语言驼峰法?
写了一个简单的工具类
问题:1、如果是ID , 连续大写,输出i_d
2、因为数组到切片需要拷贝一次 , 所以可以利用unsafe解决,因为字符串底层就是切片,但是不安全
1、解决time的问题
2、反射、下划线命名法
输出结果:
完美,美中不足是需要使用likedMap,由于Golang源码包没有,所以,注定乱序
Go语言基础语法(一)本文介绍一些Go语言的基础语法 。
先来看一个简单的go语言代码go语言驼峰法:
go语言的注释方法:
代码执行结果:
下面来进一步介绍go的基础语法 。
go语言中格式化输出可以使用 fmt 和 log 这两个标准库go语言驼峰法,
常用方法:
示例代码:
执行结果:
更多格式化方法可以访问中的fmt包 。
log包实现go语言驼峰法了简单的日志服务,也提供go语言驼峰法了一些格式化输出的方法 。
执行结果:
下面来介绍一下go的数据类型
下表列出go语言驼峰法了go语言的数据类型:
int、float、bool、string、数组和struct属于值类型,这些类型的变量直接指向存在内存中的值;slice、map、chan、pointer等是引用类型,存储的是一个地址,这个地址存储最终的值 。
常量是在程序编译时就确定下来的值,程序运行时无法改变 。
执行结果:
执行结果:
Go 语言的运算符主要包括算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符以及指针相关运算符 。
算术运算符:
关系运算符:
逻辑运算符:
位运算符:
赋值运算符:
指针相关运算符:
下面介绍一下go语言中的if语句和switch语句 。另外还有一种控制语句叫select语句,通常与通道联用 , 这里不做介绍 。
if语法格式如下:
if ... else :
else if:
示例代码:
语法格式:
另外,添加 fallthrough 会强制执行后面的 case 语句 , 不管下一条case语句是否为true 。

推荐阅读