go

Go实现自定义语言的基础

喜夏-厌秋 提交于 2020-09-30 13:41:35
0x01 自言自语 一直就对解析文档,比较感兴趣,一直没深入研究,只停留在仅知道 Lex & yacc 和 antlr 的名词阶段,最近看了go-zero的api解析器,觉得甚好,是时候花时间学习一下了。 简单看了go-zero发现是自己实现了词法分析、语法解析,这不符合我的一贯偷懒作风,所以并未其源码开始学习。既然用golang那么他自带的goyacc就是我学习的不二之选。当然你可能会听说Lex&yacc 已经很古老了,antlr更先进一点。但是既然goyacc能成为golang官方工具,那么肯定还是值得你学习的。 goyacc的文档非常的少,少到什么程度?少到你未来一定能搜到这篇。甚至连github上的使用例子也不多,大致就分两类:计算器、sql解析器,其中计算器目测是国外某大学的课程。 所以研究goyacc我花了好几个通宵、掉了少许头发。不经让这篇文章有了一个营销文案:花了一夜时间,搞懂了外国的一堂编译原理课。 个人对技术文章的理解是,文章可以有自己的观点、啰嗦、甚至幽默,但尽量不要放在学术部分,毕竟技术是严禁的。所以下面描述,我可尽能做一个无情的打字机,尽可能的按照文档风描述。 0x02 goyacc简易入门 安装 goyacc golang 1.8 版本之前 yacc 直接再带与go tool 无需自行安装。 鉴于使用的频率太少,遂在 golang 1.8 版本后

金九银十,金九月凭借这份java面试题顺利拿双offer:腾讯32k16薪和美团35k15.5薪

巧了我就是萌 提交于 2020-09-30 11:54:30
腾讯和美团都是国内非常知名的互联网公司,是很多程序员非常向往的公司,最近有一位java程序员同时拿到了这两个公司的offer,却不知道应该选哪一个好。 腾讯这边给的offer是 32k一个月,一年16个月工资,另外还有5万块钱签字费。 美团的offer是 35k一个月,一年发15.5个月。 去腾讯的话需要转Go语言开发 有腾讯员工提醒: 签字费不满一年离职的话,还要按月退还。 各自职级多少,以及工作几年了,这样比较好建议, 有网友问道 美团给的级别是3-1 级别很有诚意,现在内部5年都不一定能升3-1, 美团员工回复 该程序员回复: 但是薪资感觉一般,3-1里算很低的了,主要是在阿里之前的base太低 美团吧,美团加班少, 有网友回复 别来pcg ,腾讯员工回复 有人问: pcg真的这么差吗?我也在面 腾讯员工回复: 真的,我就在pcg,欲哭无泪 确实挺难做出选择的,两家公司都非常不错,待遇相差也不大。 小编觉得,还是从未来发展空间方面多考虑一下吧,毕竟未来的路还很长,5万块钱的签字费,也不足以对生活带大的改变。 最后祝愿这位小哥一切顺利~ 想要接住一线大厂的面试,成功拿到心仪大厂的offer,下面是一些经常遇到的面试题专栏,每天刷一个专栏就可以,这样疫情结束也可以面试自己心仪的大厂,小编整理了一些面试题,希望各位小伙伴可以拿到自己心仪大厂的offer。 性能优化面试专栏 1. 1

Fabric开发(二) Ubuntu20.04.1快速搭建Fabric1.0.0 (排雷版)

烈酒焚心 提交于 2020-09-30 10:45:27
一、安装Fabric前准备: 1、安装ubuntu,建议virtualBox+ubuntu镜像。 我所使用的版本: 1、virtualBox 5.2.20 #ubuntu桌面版,方便某些操作,例如修改源。(建议安装英文版) 2、ubuntu-20.04.1-desktop-amd64.iso 安装注意点: 1、内存: 2048M 2、CPU: 2 3、磁盘: 位置放在D盘,大小50G。 fabric 安装完需要10G 4、网络模式: 桥接 1、内存 显存 存储修改 2、网络修改 3、安装完成后,九宫格找到Software&Update,修改源。 2、xshell6 连接 可以网站直接申请学校版本 1.采用xshell 进行操作, 方便复制 sudo apt-get install openssh-server ps -e | grep ssh 2.查看ip sudo apt install net-tools ifconfig 查看ip也可以直接点击 九宫格找到Setting ->Network 3.进行xshell连接 3、安装 vim、git、curl、pip 此处注意:python-pip安装会报找不到,所以改为python3-pip sudo apt-get update sudo apt-get install vim sudo apt-get install git

谈一谈|多处引用文献解决办法

喜你入骨 提交于 2020-09-30 09:52:25
欢迎点击「算法与编程之美」↑关注我们! 本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。 欢迎加入团队圈子!与作者面对面!直接点击! 问题描述 在论文写作过程中,参考文献始终是无法忽略的一部分。公众号上有位粉丝向我们提出了问题——“在论文中,多处引用同一文献应该怎么写?”。 图1.1 问题图片 解决方案 参考文献的引用是要求我们文章中标准出来的。这里常遇到的问题就有“多处引用同一文献”和“一处引用多个文献”。那下面就来介绍一下解决办法。 (1)多处引用同一文献 只要把多个的参考文献标注的序号指向同一个文献就好了。如下图: 图2.1 多处引用同一文献效果 (2)一处引用多个文献 如下图: 图2.2 一处引用多个文献 效果 (3) 多处引用同一文献的效果 GB/T7714——2005《文后参考文献著录规则》规定,同意参考文献被引用多次只编一个序号,每次的引用页码放在行文中上角标处的参考文献序号[]外。如下图: 图2.3 多处引用同一文献的效果 参考文献相关要求 参考文献的著录应符合国家标准,参考文献的序号左顶格,并用数字加方括号表示,与正文中的引文标示一致,如[1],[2]……。每一条参考文献著录均以“.”结束。具体各类参考文献的编排格式如下: 1.文献是期刊时,书写格式为: [序号] 作者. 文章题目[J]. 期刊名, 出版年份,卷号(期数):起止页码.

layui给radio添加点击事件

元气小坏坏 提交于 2020-09-30 01:52:43
最近做一个后台项目,用到了layui,需要设计一个单选按钮并且添加点击事件。 参考了下官方文档 https://www.layui.com/doc/modules/form.html#onradio ,最终还是实现了这个效果。给layui一个好评,用layui来做后台管理系统确实不错。 html代码 < div class ="layui-form-item" > < label class ="layui-form-label" >< span style ="color: red" > * </ span > 选择: </ label > < div class ="layui-input-inline" > < input type ="radio" lay-filter ="testRadio" lay-verify ="required" name ="state" value ="pass" title ="通过" > < input type ="radio" lay-filter ="testRadio" lay-verify ="required" name ="state" value ="reject" title ="驳回" > </ div > </ div > js代码 form.on('radio(testRadio)', function (data

Github最受欢迎的TOP 10开源RTSP流媒体项目

时光总嘲笑我的痴心妄想 提交于 2020-09-30 01:07:57
Github选出 TOP 10开源免费的RTSP流媒体项目,以下是具体排名及星星数。 1、Easydarwin 星星数:4,307 Easydarwin是国内团队开发的开源流媒体框架。 它是基于Go语言研发,从2012年12月创建并发展至今,从原有的单服务的流媒体服务器形式,扩展成现在的云平台架构开源项目,属于高性能开源RTSP流媒体服务器,在Github上受到广大欢迎。 特点:RTSP推模式转发、RTSP拉模式转发、录像、检索、回放、关键帧缓存、秒开画面、RESTful接口、WEB后台管理、分布式负载均衡。 2、Libstreaming 星星数:2,959 特点:在Android上使用RTP传输H.264,H.263,AMR,AAC流媒体 3、Zlmediakit 星星数:1,824 特点:基于C ++ 11的轻量级RTSP / RTMP / HTTP / HLS / HTTP-FLV / WebSocket-FLV / GB28181服务器和客户端框架 4、V4l2rtspserver 星星数:959 特点:用于V4L2设备捕获的RTSP服务器,支持HEVC / H264 / JPEG / VP8 / VP9 5、Janus Webrtc Gateway Docker 星星数:497 特点:适用于流媒体专业级用户的Docker映像 6、Rtsp Simple Server

CSS样式更改——字体设置Font&边框Border

[亡魂溺海] 提交于 2020-09-30 01:03:26
上篇文章主要讲述了CSS样式更改中的背景Background,这篇文章我们来谈谈字体设置Font&边框Border的基础用法。 ###1.字体设置Font ####1).字体系列 <div style='font-family: sans-serif normal'></div> 可用字体: Serif Sans-serif Monospace Cursive Fantasy Times Courier ####2).字体风格 <div style='font-style:normal'></div> 文本倾斜: normal 文本正常显示 italic 文本斜体显示 oblique 文本倾斜显示 ####3).字体变形 <div style='font-variant:small-caps'></div> normal 显示标准字体。 small-caps 显示小型大写字母的字体。 ####4).字体加粗 <div style='font-weight:normal'></div> normal 标准的字符 bold 粗体字符 bolder 更粗的字符 lighter 更细的字符 也可以使用数字表示,范围为100~900 ####5).字体大小 <div style='font-size:60px'></div> smaller 变小 larger 变大 length 固定值

.NET高级工程师面试题之SQL篇

这一生的挚爱 提交于 2020-09-30 00:54:28
1 题目 这确实是一个真实的面试题,琢磨一下吧!知识不用,就会丢掉,我太依赖各种框架和dll了,已经忘记了最基本的东西。有多久没有写过SQL了,我已经不记得了。 已知表信息如下: Department(depID, depName),depID 系编号, DepName 系名 Student(stuID, name, depID) 学生编号,姓名,系编号 Score(stuID, category, score) 学生编码,科目,成绩 找出每一个系的最高分,并且按系编号,学生编号升序排列,要求顺序输出以下信息: 系编号,系名,学生编号,姓名,总分 2 实验 USE [ test ] GO /* ***** Object: Table [dbo].[Score] Script Date: 05/11/2015 23:16:23 ***** */ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO CREATE TABLE [ dbo ] . [ Score ] ( [ stuID ] [ int ] NOT NULL , [ category ] [ varchar ] ( 50 ) NOT NULL , [ score ] [ int ] NOT NULL ) ON [ PRIMARY ]