Go学习之遇到的第一大坑
来源:互联网 发布:linux graphics.h 编辑:程序博客网 时间:2024/05/16 11:53
最近
最近开始学习go语言
初步设想是通过mysql,建一张表,然后通过Go把这张表的数据以JSON格式提供出去
环境搭建好后,跑程序发现无论如何也无法通过浏览器展示想要看的数据
最终在室友的帮助下,发现是数据结构体定义出了问题使用
我定义的结构体:
type server struct {ma_typestringcu_Typestring}
可以看到变量采用了下划线方式连接字符
而Go语言采用的是驼峰法命名规范
驼峰法命名又分大驼峰和小驼峰
区别是第一个字母是大写还是小写的问题
问题
问题就出在变量以小写开头,和下划线无关
我的程序里面http的handler需要使用
《Go并发编程实战》第15页讲到:
Go语言把变量、常量、函数、结构体和接口统称为程序实体,而把它们的名字统称为标识符;
标识符首字母大小写控制着程序实体的访问权限;
如果标识符的首字母是大写的,那么它所对应的程序实体就可以被本代码包之外的代码访问到,也称可导出的;
否则,对应程序实体只能被本代码包访问;
解决
而我的程序是把数据从mysql读取出来,然后放到该结构体
并且通过json模块转换成json格式,问题就出在json转换
因为json对应本代码包来说是其它包
根据上面的原则,我的结构体标识符是小写开头,因此不能被外部包(json)
最终改成大写开头解决:
type server struct {MaTypestringCuTypestring}
0 0
- Go学习之遇到的第一大坑
- initWithContentsOfFile遇到的大坑
- IE这个大坑之细数遇到的坑
- 最近遇到的几个大坑
- gradle 3.5遇到的大坑
- oracle数据库学习之遇到的第一个坑,查询
- Go学习第一课
- fragment嵌套时遇到的两大坑
- 用tcc遇到的一个大坑
- Android开发中遇到的大坑
- 集成腾讯信鸽推送遇到的大坑
- 记一次View.getContext()遇到的大坑
- Android微信支付遇到的大坑
- Swift 使用 NSClassFromString 遇到的大坑
- 微信支付遇到的大坑 WxpayAPI_php_v3
- go 遇到的坑
- go遇到的问题
- 学习WCF遇到的第一个困难
- ABAP万能该表程序(谨慎)
- 编程语言简介
- mac下挂在移动硬盘
- Linux字符驱动-scull
- 用python实现的可以自动补全的前缀树
- Go学习之遇到的第一大坑
- ionic添加cordova插件-NativeAudio
- hdu 3094 A tree game (树形删边游戏)
- swift UIProgressView
- 引用外部.css或.js文件的路径问题
- ifconfig, route以及ip指令的实战应用
- Mysql 数据库学习 (一)数据库概述
- 数据报表导出Excel功能
- Spring Processing