语言的分类(静动态/强弱类型/显隐式)

强弱类型语言: 强类型:类型是定义好的,无法改变它的类型了,但是向C语言,虽然定义了一个short,还是可以当成char来用的,因为可以直接操作内存。 弱类型:类型之间可以自由转换 弱类型语言,类型检查更不严格,如偏向于容忍隐式类型转换。譬如说C语言的int可以变成double。 这样的结果是:容易产生forbidden behaviours,所以C是弱类型的。 显式隐式 在语法层面明确数据类型与否,隐式的比如C++ 的 auto 关键字,JS/Go的var,还有python。 动态静态类型语言...阅读全文

简书 2020-05-18 11:33:08 小幸运Q

15. 理解 Go 语言面向对象编程:结构体与继承

Hi,大家好,我是明哥。 在自己学习 Golang 的这段时间里,我写了详细的学习笔记放在我的个人微信公众号 《Go编程时光》,对于 Go 语言,我也算是个初学者,因此写的东西应该会比较适合刚接触的同学,如果你也是刚学习 Go 语言,不防关注一下,一起学习,一起成长。 我的在线博客:golang.iswbm.com 我的 Github:github.com/iswbm/GolangCodingTime 0. 什么是结构体? 在之前学过的数据类型中,数组与切片,只能存储同一类型的变量。若要存储多个...阅读全文

掘金 2020年05月18日 王一白

ARTS 第1周 LeetCode 78 Subsets | Golang 二维 slice 注意事项 | Go 官网文档

ARTS ARTS 是陈浩(网名”左耳朵耗子“)在极客时间专栏里发起的一个活动,目的是通过分享的方式来坚持学习。 每人每周写一个 ARTS:Algorithm 是一道算法题,Review 是读一篇英文文章,Technique/Tips 是分享一个小技术,Share 是分享一个观点。 算法 LeetCode 78 Subsets & 90 Subsets II 先看一下题目要求。 78.Subsets Given a set of **distinct** integers, _nums_, re...阅读全文

Segmentfault 2020-05-24 17:32:43 casmo澎湃哥

15. 理解 Go 语言面向对象编程:结构体与继承

Hi,大家好,我是明哥。 在自己学习 Golang 的这段时间里,我写了详细的学习笔记放在我的个人微信公众号 《Go编程时光》,对于 Go 语言,我也算是个初学者,因此写的东西应该会比较适合刚接触的同学,如果你也是刚学习 Go 语言,不防关注一下,一起学习,一起成长。 我的在线博客:http://golang.iswbm.com我的 Github:github.com/iswbm/GolangCodingTime 0. 什么是结构体? 在之前学过的数据类型中,数组与切片,只能存储同一类型的变量。...阅读全文

Segmentfault 2020-05-25 06:32:34 Python编程时光

聊一聊Go的Context上下文

Context 前言 前面在“聊一聊http框架httprouter”的时候,提到了上下文的概念,上一个demo用来列举web框架中全局变量的传值和设置,还类比了Java Spring框架中的ApplicationContext。 这一次我们就来聊一聊Go中的标准库的context,梳理上下文概念在go中的常用情景。 问题引入 在列举上下文的用法之前,我们来看一个简单的示例: 协程泄露 func main() { //打印已有协程数量 fmt.Println("Start with gorout...阅读全文

掘金 2020年05月16日 pixelpig

GoFrame第一部分(一)——GoFrame介绍及安装

GoFrame介绍及安装 一.GoFrame简介 1.概览2.特性3.架构 二.安装 1.终端安装2.go mod 安装 三.Hello World GoFrame是一个功能齐全的框架,第一部分学习笔记以Web服务开发为主,记录所学所想所得。 工欲善其事,必先利其器。本篇文章主要记录GoFrame框架是什么及其如何安装。 一.GoFrame简介 1.概览 GF(Go Frame)是一款模块化、高性能、生产级的Go基础开发框架。实现了比较完善的基础设施建设以及开发工具链,提供了常用的基础开发模块,...阅读全文

掘金 2020年05月17日 相守之路

手把手golang教程——数组与切片

本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是golang专题的第五篇,这一篇我们将会了解golang中的数组和切片的使用。 数组与切片 golang当中数组和C++中的定义类似,除了变量类型写在后面。 比如我们要声明一个长度为10的int型的数组,会写成这样: var a [10]int 复制代码 数组的长度定义了之后不能改变,这点和C++以及Java是一样的。但是在我们日常使用的过程当中,除非我们非常确定数组长度不会发生变化,否则我们一般不会使用数组,而是使用切片(sli...阅读全文

掘金 2020年05月17日 承志

Go语言工具箱--Starcharts

基本介绍 试想这样一种场景,当你在github上有一个项目,你觉很受欢迎,并且被star的情况也很乐观,如何才能够实时的展示出来呢? Starcharts就是为了实现这个目的而存在的,展示效果可以参看下图,暂时了star的变动情况。 另外,在README.md文件中,可以直接引用下面的.svg文件,让你的项目程序范儿点。 ## Stargazers over time [![Stargazers over time](https://sspell.com/star/hapiman/gorice....阅读全文

掘金 2020年05月16日 大漠胡萝卜

php初认识

php是世界上最好的语言。这只是一句玩笑话,因为说其他语言不好笑。他是屌丝的,无后台,没被包养的。请勿对号入座。不同的编程语言适合不同的场景。php只有在特定的场景才实用,比如后台管理系统,网站论坛等。部署简单很多其他行业的公司,希望有一个网站,他们并没有多少预算在网站上,可能只是随便买了一个虚拟主机,这时恐怕最好的选择就是 PHP 了。支持 Ruby, Python 之类的语言的虚拟主机很少,ASP 需要 Windows 的服务器,只有 PHP 可以运行在任何一家虚拟主机上。学习门槛低一开始 ...阅读全文

简书 2020-05-17 22:32:46 高大强19

摘录

golang实现直播和点播功能 1.概述 刚开始做直播的时候,还是有些懵逼的,毕竟什么推拉流,什么格式协议完全不懂的,还有第三方的接口也是层出不穷,其实简单的说一下,如图(腾讯直播Api里面盗取的) image 其实所谓的推流就是主播的客户把我们要的播放内容按特定的流程存放于服务器,当然这里面展示的是腾讯云,完后经过通讯云的转码再让观众去观看(拉取),建议不是很明确基础的小伙伴去了解一下,理解起来还是很方便的.腾讯云传送门 而我们今天使用的不是腾讯,而是用golang写好的开源项目livego,...阅读全文

简书 2020-05-17 22:32:46 雪上霜

WebSocket+SLB(负载均衡)会话保持解决重连问题

写在最前面:由于现在游戏基本上采用全球大区的模式,全球玩家在同一个大区进行游戏,传统的单服模式已经不能够满足当前的服务需求,所以现在游戏服务器都在往微服务架构发展。当前我们游戏也是利用微服务架构来实现全球玩家同服游戏。 玩家每次断线(包括切换网络/超时断线)后应该会重新连接服务器,重连成功的话可以继续当前情景继续游戏,但是之前写的底层重连机制一直不能生效,导致每次玩家断线后重连都失败,要从账号登陆开始重新登陆,该文章写在已经定位了重连问题是由SLB引起后,提出的解决方案。 当前游戏架构: 客户端...阅读全文

简书 2020-05-17 22:32:45 神奇的哈密瓜_35b8

将 github 设为私有仓库

将 github 设为私有仓库 <第一步> : 生成token 「如果不是项目的构建者,问项目负责人获取」 https://github.com/settings/tokens/new <第二步> : token 设置到请求头中 git config --global http.extraheader "PRIVATE-TOKEN:YOUR_PRIVATE_TOKEN" <第三步> : 配置git将请求从ssh转换为http #全局替换拉取域下的所有包 git config --global u...阅读全文

简书 2020-05-17 22:32:44 cpath_9d7a

Golang笔记-单元测试test初探

### 为什么需要单元测试 其实在很长一段时间,包括现在,我都很不喜欢写单元测试。因为维护单元测试的成本很高。只有接口做了一点变更,那么单元测试就必须做相同的变更,否则会导致测试不通过。 那么反过来,只要每次在提交代码都去运行一次单元测试。这样可以很快的检查到你对代码更改是否影响了正常的业务逻辑,当然很大一部分是可能是别人写的那部分代码。因为你不确定本次的修改是否会影响到别人的那部分。所以单元测试还是很有必要的。 ### 单元测试最基本的应用 go语言中单元测试是开箱即用的,官方...阅读全文

Go语言中文网 2020-05-17 18:15:13 rundaisc

第三十二章: golang编译与go程序部署

Go程序编译 1. 交叉编译(Cross compiler) “ 交叉编译是在一个平台上生成另一个平台上的可执行代码。同一个体系结构可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行 ” 对于交叉编译我们简单的理解是在当前平台上编译出其他平台可以执行的文件 交叉编译给我们带来的好处是我们一次编写的代码经过交叉编译之后可以在多个平台上执行 我们在 Windows 编写Go程序可以编译成在 Mac OS 或者 Linux 上的运行程序 (良好的可移植性) 2. 交叉编译设置 重...阅读全文

简书 2020-05-17 17:32:44 captain89

go mod undefined: balancer.PickOptions 错误解决

现在高版本的golang(比如1.14)使用go mod进行包管理,虽然比之前的方式规范了一些,但是对于刚接触的人来说,确实有很多坑需要踩.之前用golang1.11用的挺好的,本地库也都是老版本的包,突然升级一些包,然后这些包里面用到了go mod,一下子发现很多包压根找不到了,因为go mod是语义化的版本,有的根本不存在. undefined: balancer.PickOptions 这个问题的根本就是包冲突了,使用go get命令会自动获取最新的包. 在go.mod文件最后增加下面的r...阅读全文

简书 2020-05-17 17:32:43 林子老公

用golang写一个简单的游戏(二)

上篇文章写到了,我已经打印出了一个从起点到终点的路径,并且这是受键盘事件控制的。今天我会继续给这个游戏添加一些东西,让它看起来像个“游戏”。 现在我要加上一个障碍,不是随便一条路径都可以从起点到终点,这个障碍就姑且叫它“炸弹”,我赋给它的规则是,它的上下左右(称之为陷阱)及它本身不能经过,必须绕着走。即如图: 添加这个道具,我有几个改动的地方,如下: 获取每个关卡的参数,增加了炸弹的位置和周围陷阱的位置,结构体变成了这样子: type RoundParams struct { Height in...阅读全文

51CTO博客 2020-05-16 11:00:06 wx5e1abbbb0a5e5

如何使用go语言创建ANSI格式文本文件

# 如何使用go语言创建ANSI格式文本文件 >有同学在群里面问, "各位同学,请教一个问题,用go语言创建一个 ANSI格式的txt文件,并写入几个汉字, go语言没有找到ansi编码文件操作,有没有懂的同学,可以付费"。 我研究了一下,给出以下答案。如有不正确,请指正。 ``` package main import ( "fmt" "io/ioutil" "os" "golang.org/x/text/encoding/simplifiedchi...阅读全文

Go语言中文网 2020-05-17 12:51:45 mdjdot

go mod使用

最近由于换工作,开始交接工作。整理以前的工作内容,由于组内就我一个在做go和大数据。 所以开发没有规划,当时是怎么快怎么来。go也是使用最传统的go path的方式管理的。都是手动管理依赖的。现在交接给他人,需要多人开发,发现很多问题。比如版本问题,各种依赖的问题等等。 由于工作原因,几乎所有主流语言都写过。所以,对应语言包管理工具也都了解和使用过。我前面有写过maven的使用。 maven是使用过的功能最强大的包管理工具了,maven定位是项目管理工具。pip和npm都是及格的产品。 我个人觉...阅读全文

简书 2020-05-17 11:32:47 若与