Go 语言面向对象编程系列教程(七) —— 接口篇:通过接口赋值实现接口与实现类的映射

上篇教程我们介绍了接口定义及实现,和 PHP 一样,Go 语言的接口不支持直接实例化,只能通过实现类实现接口声明的所有方法,不过不同之处在于 Go 语言接口支持赋值操作,从而快速实现接口与实现类的映射,与之相比,PHP 要实现接口与实现类的映射,只能基于 IoC 容器通过依赖注入实现,就像 Laravel 框架底层服务容器所做的那样,要复杂的多。 接口赋值在 Go 语言中分为如下两种情况...

Leetcode基础刷题之PHP解析(56. Merge Intervals)

整体思路新建一个数组用来存储最终的结果,每次从数组中取出最后一组最为参照点,只要当前遍历数组中的第一个数大于参照点的最后一个数,说明这两个数组间没有交集,那么直接push到新数组中,否则取他们中的最小值,和最大值作为新数组的最小值和最大值。但是有一个bug就是比如下面这种情况...

基于 Laravel + Swoole + Vue 组件实现支持高并发的实时弹幕功能(下)

我们接着上篇教程来完成弹幕服务端以及客户端与服务端交互的开发,首先来实现服务端 WebSocket 服务器的编码。 WebSocket 服务器 我们参照之前的功能介绍教程《在 Laravel 中集成 Swoole 实现 WebSocket 服务器》实现这个用于弹幕功能的 WebSocket 服务器。 注:如果你还没有在 Laravel 项目中安装配置 LaravelS 扩展包,参考这篇...

Go 语言面向对象编程系列教程(六) —— 接口篇:接口定义与实现

接口在 Go 语言中有着至关重要的地位,如果说 goroutine 和 channel 是支撑起 Go 语言并发模型的基石,那么接口就是 Go 语言整个类型系统的基石。Go 语言的接口不单单只是接口,下面就让我们一步步来探索 Go 语言的接口特性。 PHP 的接口实现 和类的实现相似,Go 语言的接口和其他语言中提供的接口概念完全不同。以 PHP 为例,接口主要作为不同类之间的契约存在,...

SMProxy 1.2.9 发布 ! 新增状态命令监控面板功能

Swoole MySQL Proxy 一个基于 MySQL 协议,Swoole 开发的MySQL数据库连接池。 原理 将数据库连接作为对象存储在内存中,当用户需要访问数据库时,首次会建立连接,后面并非建立一个新的连接,而是从连接池中取出一个已建立的空闲连接对象。 使用完毕后,用户也并非将连接关闭,而是将连接放回连接池中,以供下一个请求访问使用。而连接的建立、断开都由连接池自身来管理。 同...

基于 Laravel + Swoole + Vue 组件实现支持高并发的实时弹幕功能(上)

前面我们已经介绍完了 Swoole 的所有功能特性以及集成到 Laravel 框架的注意事项,接下来学院君带大家来做一些实践小项目练练手,在实践篇里,我们将完成两个项目,一个是简单的弹幕功能,一个是在线聊天室,首先我们来实现弹幕功能。 弹幕服务后端实现 随着哔哩哔哩之类的弹幕视频网站和在线直播视频的兴起,弹幕功能越来越常见,所谓弹幕其实就是视频界面上满天飞评论,就像下面这种: 这样一来...

Laravel 6.0 版本即将发布!

昨天,Taylor 在 LaraCon 上宣布 Laravel 6.0 即将在今年 8 月份发布,这意味着 Laravel 5.X 版本定格在 Laravel 5.8 不再继续升级,取而代之的是全新的 6.0 版本,新的大版本伴随的必然是新的功能和面貌,从这个版本开始,Laravel 将启用新的品牌 Logo 和网站: 新的 Logo 更加立体化,体现出基于 Laravel 框架,我...

Leetcode PHP题解--D109 122. Best Time to Buy and Sell Stock II

D109 122. Best Time to Buy and Sell Stock II 题目链接 122. Best Time to Buy and Sell Stock II 题目分析 给定一个数组,代表商品价格。从给定的数组中,计算通过买卖能获得的最大收益。只有卖出才能再买入。 思路 一开始以为是获取最小值右边的最大值去卖出。 后来发现规律,是在价格拐点进行买入卖出操作。 即,先单...

Go 语言面向对象编程系列教程(五) —— 类属性和方法的可见性

前面我们已经陆续介绍了 Go 语言中面向对象的基本特性,包括自定义类的实现、构造函数、成员方法、类的继承、方法重写等,今天我们来系统介绍下类的属性和成员方法的可见性。 在 Go 语言中,没有类似 PHP 和 Java 那种命名空间的概念,不过 Go 语言也是通过包来管理源代码的,包往往与文件系统的目录结构存在映射关系,Go 语言在寻找变量、函数、类属性及方法的时候,会先查看 GOPATH...