- 博客(33)
- 收藏
- 关注
原创 Go语言接口的概念
先看看一个程序运行后输入网址,返回html文本例如输入但一般来讲,main函数中不会有太多的代码,改进后变为这个样子要是我们想让请求网页的程序独立开来呢,运用我们之前讲的包和封装的知识,变成这样项目结构:main.gogetHtml.go但问题来了,如果这个项目要进行测试,而测试的文件在另外一个包内,怎么办?一、笨方法测试文件将main.go中原本的类型改为testGet.go中所定义的类型测试完后,要正常运行的话,又得改回来,这样的操作很麻烦,进过观察我们发现,不管是测试文件还
2022-06-01 22:48:34
165
原创 ANTLR学习(三)antlr的功能
文章目录算数表达式语言匹配算数表达式的语言语法语法导入处理错误输入使用访问者模式构建一个计算器利用监听器构建一个翻译器如何将动作直接嵌入语法文件在语法中嵌入任意动作使用语义判定改变语法分析过程词法分析特性孤岛语法重写输入流将词法符号送入不同通道算数表达式语言匹配算数表达式的语言我们的表达式语言组成的程序就是一系列语句,每个语句都由换行符终止,一个语句可以是一个表达式、一个赋值语句或者是一个空行。语法//Expr.g4grammar Expr;/** The start rule; begin
2022-05-29 22:25:22
887
原创 Go语言的依赖管理
依赖的概念在编写代码的过程中,很多时候不用自己去造轮子,会大量的使用第三方的库,这就可以称为依赖依赖管理的三个阶段GOPATHGOVENDORgo mod不论是GOPATH和GOVENDOR现在都在向go mod方向上转移,感兴趣的同学可以自行去了解我们以uber-go/zap项目为例项目链接:https://github.com/uber-go/zap我们将在自己的项目上加上这个依赖操作在uber-go/zap上以及给出,直接在项目路径中运行给出的操作即可运行后在go.mod
2022-05-26 21:24:12
579
原创 Go语言中的包和封装
封装名字一般使用CamelCase首字母大写表示public首字母小写表示private包为结构体定义方法必须放在同个包内可以是不同文件案例项目结构文件内容//entry.gopackage functionimport "fmt"func Grade(n int) { if n < 60{ fmt.Println("bad") }else if n >= 60 && n < 80 { fmt.Println("soso
2022-05-23 20:29:48
265
原创 ANTLR学习(二):ANTLR入门项目
文章目录前言一、项目简介二、ANTLR工具、运行库以及自动生成的代码三、将生成的语法分析器与Java程序集成四、构建一个语言类应用程序前言通过一个入门项目学习到:一些ANTLR语法的语义元素定义ANTLR根据语法自动生成代码的机制如何讲自动生成的语法分析器和Java程序集成如何使用语法分析树监听器辨析一个代码翻译工具一、项目简介构造一个语法,它为C语言或其继承者Java语法的一个很小的自己,我们将识别包括花括号或者嵌套的花括号的一些整数,例如{1,2,3}和{1,{2,3},4}
2022-05-22 21:20:13
3175
1
原创 ANTLR4 学习(一):ANTLR4安装
文章目录前言一、ANTLR4的下载二、环境变量配置1.在系统变量中配置CLASSPATH2、配置文件3、检查4、测试前言本篇博客主要内同为ANTLR4的安装与Hello的操作示例,需要注意的是,必须要先在环境中安装好java,并且正确配置环境变量一、ANTLR4的下载下载在官网中即可下载官网:https://www.antlr.org点击即可下载一个jar包,下载完成。二、环境变量配置1.在系统变量中配置CLASSPATH将下载好的jar包放在一个你喜欢的目录中,将这个jar包的路
2022-05-21 17:38:15
3506
原创 Go语言结构体
go语言只有封装,没有继承和多态结构体定义方法package mainimport "fmt"type treeNode struct { value int left, right *treeNode}func createNode(value int) *treeNode { return &treeNode{value: value}}func main() { var root treeNode root = treeNode{ value
2022-05-16 22:20:02
89
原创 GO语言map知识点
package mainimport "fmt"func main() { m := map[int]string{ 1: "小红", 2: "小明", 3: "小刚", } m2 := make(map[int]string) //m2 == empty map var m3 map[int]string //m3 == nil fmt.Println(m) fmt.Println(m2) fmt.Println(m3) fmt.Println("----
2022-05-14 21:25:42
696
原创 Go语言切片疑点二
先来看一段程序package mainimport "fmt"func main() { arr := [...]int{0, 1, 2, 3, 4, 5, 6, 7} s1 := arr[2:6] s2 := s1[3:5] s3 := append(s2, 10) s4 := append(s3, 11) s5 := append(s4, 12) fmt.Println(s1, s2, s3, s4, s5) fmt.Println(arr)
2022-05-14 11:09:43
83
原创 Golang切片疑点一
package mainimport "fmt"func main() { arr := [...]int{0, 1, 2, 3, 4, 5, 6, 7} s := arr[:] sa := s[2:6] fmt.Println(sa) sb := sa[3:5] fmt.Println(sb)}运行结果在最后加上fmt.Println(sa[4])会报错:那么切片sb是如何取到sa[3,5]的呢?先来看一张图go语言中的切片,是对底层数组的一个映射,这也是g
2022-05-07 23:42:13
398
原创 ORM原理与数据库配置
一、ORM原理一般我们通过SQL语句来操作数据库,对数据库进行增删改查,但不同的数据库有着不同的语法,比如说,一个项目一开始是一MySQL为数据库,但随着项目的开发,MySQL满足不了项目需求,于是项目改用Oracle数据库,这时项目的代码改动将会是一个非常大的工程,所以,就有了ORM模板的出现。当使用ORM时,ORM会根据数据库的选择自动选择相应的语法,这就方便了数据库的操作。二、django中的数据库配置打开settings.py文件,数据库的语句是DATABASES = { 'de
2021-12-15 22:01:34
342
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人