golang learning
开发用py和go 入职前学了几天py入职后看的代码也是py 现在终于还是要学go了
初体验:感觉和c py都很像 入门语法看起来很简单的样子 学了py之后现在各种随意 需要多注意
在函数传参的时候 c是传进去的值or引用取决于值or地址 py里面是可变与不可变变量 go好像又像py又像c 它支持指针,但是slice和array在做参数的时候又像py了。。
Golang中 定义接口方法结构体的时候要注意首字母大写不然会出奇怪的错误。。这是一个“公有私有“的概念,不能使用其他包的首字母为小写的方法以及结构体什么的 // 原则上也不能全都大写
Interface是一个神奇的东西,啥都能实现空的它
但是非空的就有点不太明白,目前用到空interface的地方只有json的时候断言读取。。
一个结构体内部也是一个小map,于是可以通过json的marshal将它变成一个json条,这时候我们使用unmarshar做一个json_tuple的操作,将json条转到一个interface{}类型的变量上,那么它就会变成一个map[string]interface{}变量,通过断言就可以forrange循环访问了
断言可能会失败什么的 可以加一个返回err来判断一下,这个err感觉很像java中的try抓取 不同的是必定会返回一个bool
Godep看起来是一个这样的东西,它可以解决一个依赖的问题:我调用了一个库 那么我就要把这个库和我的项目放在一起 但是这个库本身也有一个git什么的,于是采用godep,对于一个git文件 用save创造出它的Godep.json 这里面有各种依赖,并且在同级的文件夹workspace中应该有所有的依赖库 于是这样可以很容易的将依赖库放到我这个里面并且更改import # 然而我现在失败了啊。。
真正开始用go来写东西了,感觉弄懂了逻辑之后其实写go和之前用c做题差不多,甚至更容易些,不过需要多注意的是error问题,因为不和之前做题一样,我知道bfs一定会成功执行,但是在写东西的时候都要考虑到,什么时候都要if err!=nil一下。
在使用到interface的时候遇到了很多问题,go并不能隐式类型转换,于是我明知道这是个int的string但是转化就很麻烦,在对一个map[string]interface的结构体做操作的时候尤为麻烦,好在发现model库里面有这个结构体的type定义,直接声明一个结构体让他等于这个map接口就可以访问了,但是不知道还有什么别的方法硬转化一下(后来发现之前的代码好像也是这么做的,大概所有能用到的结构体早就被定义了)
现在发现虽然用go写了一些代码,但是都不需要什么技术水平,都是基本语法QAQ连interface都不太理解,还需要好好学一下深层的东西。
年轻的菜尚思考了人生的意义 决心开始看书。
掏出一本go语言程序设计开始看看看。。从基本语法往后看,虽然看这本书的最初想法是观察一下go语言在并发等地方不同于别的语言的地方(一个同事告诉我,学会一个语言不是光会写语法,感觉很对) 然后虽然在学校呆了十几天还是没看完。。感觉还是有很大收获的,虽然大部分都是已经知道的东西,还是学到了很多有趣的地方,对于interface这种一开始根本不明白的小东西也看了很多有益的地方,有一个收获就是感觉看这类书不能从啥都不知道开始看,可能会错过很多东西QAQ
希望在回学校之前能够把这本书看完,然后再学习一下这本书没讲到的东西,以更了解这个语言。
golang learning的更多相关文章
- Cheatsheet: 2019 07.01 ~ 09.30
Other Intro Guide to Dockerfile Best Practices QuickJS Javascript Engine Questions for a new technol ...
- Redis 安装及入门
Redis简介 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API. Docker方式安装Redis # 拉取 r ...
- Deep Learning部署TVM Golang运行时Runtime
Deep Learning部署TVM Golang运行时Runtime 介绍 TVM是一个开放式深度学习编译器堆栈,用于编译从不同框架到CPU,GPU或专用加速器的各种深度学习模型.TVM支持来自Te ...
- 【机器学习Machine Learning】资料大全
昨天总结了深度学习的资料,今天把机器学习的资料也总结一下(友情提示:有些网站需要"科学上网"^_^) 推荐几本好书: 1.Pattern Recognition and Machi ...
- 【深度学习Deep Learning】资料大全
最近在学深度学习相关的东西,在网上搜集到了一些不错的资料,现在汇总一下: Free Online Books by Yoshua Bengio, Ian Goodfellow and Aaron C ...
- golang 资源
1.Learning Go <学习Go语言> http://www.miek.nl/projects/learninggo/中文版http://mikespook.com/learning ...
- Go语言(golang)开源项目大全
转http://www.open-open.com/lib/view/open1396063913278.html内容目录Astronomy构建工具缓存云计算命令行选项解析器命令行工具压缩配置文件解析 ...
- What skills are needed for machine learning jobs
What skills are needed for machine learning jobs?机器学习工作必须技能 原文: http://www.quora.com/Machine-Learnin ...
- [转]Go语言(golang)开源项目大全
内容目录 Astronomy 构建工具 缓存 云计算 命令行选项解析器 命令行工具 压缩 配置文件解析器 控制台用户界面 加密 数据处理 数据结构 数据库和存储 开发工具 分布式/网格计算 文档 编辑 ...
随机推荐
- 【BZOJ4385】[POI2015]Wilcze doły 单调栈+双指针法
[BZOJ4385][POI2015]Wilcze doły Description 给定一个长度为n的序列,你有一次机会选中一段连续的长度不超过d的区间,将里面所有数字全部修改为0.请找到最长的一段 ...
- 隐藏内容但仍保持占位的css写法
通常显示和隐藏内容都会用display:block;和display:none; 如果想要保持内容的占位可以用visbility:visible; 和visiblity:hidden;来控制内容的显示 ...
- RPC远程过程调用概念及实现
RPC框架学习笔记 >>什么是RPC RPC 的全称是 Remote Procedure Call 是一种进程间通信方式. 它允许程序调用另一个地址空间(通常是共享网络的另一台机器上)的过 ...
- Fiddler 抓包工具使用详解
博客园 首页 新随笔 联系 订阅 管理 随笔 - 20 文章 - 0 评论 - 64 Fiddler 抓包工具总结 阅读目录 1. Fiddler 抓包简介 1). 字段说明 2). Statis ...
- [转载]js复制内容加版权声明代码
转自:https://www.cnblogs.com/zdz8207/p/js-oncopy.html var ua = navigator.userAgent.toLowerCase(); if( ...
- Spring 框架的事务管理
1. Spring 框架的事务管理相关的类和API PlateformTransactionManager 接口: 平台事务管理器(真正管理事务的类); TransactionDefinition 接 ...
- Qt 打印机支持模块
Qt 打印支持 Qt为打印提供广泛的跨平台支持.使用每个平台上的打印系统,Qt应用程序可以打印到连接的打印机,并通过网络打印到远程打印机.Qt的打印系统还支持PDF文件生成,为基本的报告生成设施奠定了 ...
- python用whl文件安装包
直接用pip安装包的时候有时会因为许多奇怪的原因安装失败,这时就需要祭出大杀器——whl文件 python3 -m pip install whl文件路径名 whl库:https://www.lfd. ...
- 细数Python中的数据类型以及他们的方法
一.数据类型的种类及主要功能 1.数字类型 数字类型主要是用来计算,它分为整数类型int和浮点类型float 2.布尔类型 布尔类型主要是用于判断,它分为真True和False两种 3.字符串类型 字 ...
- HTML5之WEB Storage
什么是HTML5 web storage? 使用HTML5,web页面能够使用用户的浏览器本地保存数据. 在曾经,通常我们使用cookie来保存用户数据.然而使用web存储更加安全和高速.数据不再包括 ...