- 博客(30)
- 收藏
- 关注
转载 正则表达式
正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。简单来说就是用一串特殊格式的字符来找到全部符合一定要求的字符串,也可以用字符串来匹配判断正则表达式。而搜索的方式可以理解为DFA或者NFA的过程。对于正则表达式,...
2019-07-09 10:29:00
690
转载 从零开始学Go之并发(四):互斥
通常使用互斥锁(Mutex)这一数据结构来保证每次只有一个 Go 程能够访问一个共享的变量sync.Mutex:Go 标准库中提供了sync.Mutex互斥锁类型及其两个方法:Lock()Unlock()我们可以通过在代码前调用Lock方法,在代码后调用Unlock方法来保证一段代码的互斥执行用defer语句来保证互斥锁一定会被解锁// Safe...
2019-07-02 12:40:00
155
转载 从零开始学Go之并发(三):Select
select 是 Go 中类似于用于通信的 switch 语句。每个 case 必须是一个通信操作,要么是发送要么是接收select 随机执行一个可运行的 case,如果没有 case 可运行,它将阻塞,直到有 case 可运行一个默认的子句应该总是可运行的当select中的其它分支都没有准备好时,default分支就会执行select {case 操作}...
2019-07-02 12:39:00
144
转载 从零开始学Go之并发(二):通道
由于goroutine中资源共享内存,为了避免互斥等问题保证数据正确性,引入通道的概念(channel)Go 语言中的通道(channel)是一种特殊的类型。在任何时候,同时只能有一个 goroutine 访问通道进行发送和获取数据。goroutine 间通过通道就可以通信。通道像一个传送带或者队列,总是遵循先入先出(First In First Out)的规则,保证收发数据的顺...
2019-07-02 12:38:00
155
转载 从零开始学Go之并发(一):Go程
Go 程(goroutine)是由 Go 运行时管理的轻量级线程。当一个goroutine创建时,会和其他goroutine一起并发运行, goroutine 由 Go 程序运行时的调度和管理。Go 程序从 main 包的 main() 函数开始,在程序启动时,Go 程序就会为 main() 函数创建一个默认的 goroutine所有 goroutine 在 main() 函...
2019-07-02 12:36:00
128
转载 从零开始学Go之接口(三):常用内置接口
Stringers:fmt包中定义的Stringer是最普遍的接口之一。type Stringer interface { String() string}Stringer是一个可以用字符串描述自己的类型。fmt包(还有很多包)都通过此接口来打印值。type Person struct { Name string Age int}...
2019-07-02 12:33:00
362
转载 从零开始学Go之接口(二):类型断言与类型选择
类型断言:类型断言提供了访问接口值底层具体值的方式。变量名 := 接口名.(判断类型名)var i interface{} = "hello"s := i.(string) //f := i.(float64) //编译错误,因为i的值不为float64当只有一个返回值时,返回值为对应类型的值,而判断类型名与接口值类型不对应时,程序会宕机panic此时...
2019-07-02 12:31:00
156
转载 从零开始学Go之接口(一):接口
接口是双方约定的一种合作协议。接口实现者不需要关心接口会被怎样使用,调用者也不需要关心接口的实现细节。接口是一种类型,也是一种抽象结构,不会暴露所含数据的格式、类型及结构。声明:接口类型是由一组方法签名定义的集合type 接口类型名 interface{方法名1( 参数列表1 ) 返回值列表1方法名2( 参数列表2 ) 返回值列表2…}typ...
2019-07-02 12:30:00
144
转载 从零开始学Go之函数(三):宕机与恢复
延迟执行defer:当某些语句需要函数结束时才使用时,可以使用defer语句最常用的就是在打开os.Open后加入Close()时用defer避免程序结束未关闭文件defer 语句例子:func main() { fmt.Println("test") for i:=0;i<3 ;i++ { fmt.Println(i) defer...
2019-07-02 00:12:00
87
转载 从零开始学Go之函数(二):指针与方法
类型别名与类型定义:类型别名:type 类型别名 = 类型名type TypeAlias = intTypeAlias 只是 int 的别名,本质上 TypeAlias 与 int 是同一个类型类型定义:type 新类型名 类型type NewInt intNewInt 则是一个新的类型,虽然他的实例化可以被赋值int,但是不再...
2019-07-02 00:10:00
83
转载 从零开始学Go之函数(一):匿名函数与闭包
匿名函数:匿名函数类似于函数声明,但是没有函数名func (函数参数列表) (函数返回值列表){函数内部代码}在函数声明后可以加入参数直接调用func main() { g := func(a int) uint { //匿名函数 return uint(a + 14) }(10) //声明后调用 f := func(a int) uint ...
2019-07-02 00:08:00
71
转载 从零开始学Go之容器(四):列表
链表内部的实现原理是双链表,可以高效地进行任意位置的元素插入和删除操作类似的还有堆heap和环列表ring,声明和初始化的方式是相同的,只是原理以及操作的函数不同,当理解了原理操作也是很简单的。声明与初始化:list 的初始化有两种方法:New 和声明。两种方法的初始化效果都是一致的。变量名 := list.New()var 变量名 list.List/...
2019-06-25 23:20:00
99
转载 从零开始学Go之容器(三):映射
map 是一种特殊的数据结构:一种元素对(pair)的无序集合,pair 的一个元素是 key,对应的另一个元素是 value,所以这个结构也称为关联数组或字典。声明:var 映射名称 map[键类型]值类型var map1 map[string]intkey 可以是任意可以用 == 或者 != 操作符比较的类型,比如 string、int、floatv...
2019-06-25 23:18:00
97
转载 从零开始学Go之容器(二):切片
切片(slice)是对数组一个连续片段的引用(该数组我们称之为相关数组,通常是匿名的),所以切片是一个引用类型。切片的内部结构包含开始位置地址(&)、大小(len)和容量(cap)。切片并不存储任何数据,它只是描述了底层数组中的一段。更改切片的元素会修改其底层数组中对应的元素。声明:var 数组名 []类型var a []int切片的声明...
2019-06-25 23:16:00
106
转载 从零开始学Go之容器(一):数组
数组是一个由固定长度的特定类型元素组成的序列,一个数组可以由零个或多个元素组成声明:var 数组名 [数组长度]类型var a [10]int//第一个元素a[0],最后一个元素a[len(a)-1]数组长度在声明后不能改变,因为长度是类型的一部分。数组的下标是从0开始,到长度len-1为止,长度为3的数组下标对应0,1,2初始化:var ...
2019-06-24 19:28:00
68
转载 从零开始学Go之基本(五):结构体
结构体:声明:type 结构体名 struct{ 结构体内部字段}例子:type UserInfo struct { Id string `json:"id"` Name string `json:"name"` Headpicture string `json:"headpicture"` Info s...
2019-06-23 19:22:00
83
转载 从零开始学Go之基本(四):流程控制语句
Go中的流程控制语句有:if(else),for,switchif:(判断流程控制)关键字 if 是用于测试某个条件(布尔型或逻辑型)的语句,如果该条件成立,则会执行 if 后由大括号括起来的代码块,否则就忽略该代码块继续执行后续的代码(跟C不同,Go中的if不需要加括号)单个判断:if 判断条件 { 执行代码块}如果要增加一个...
2019-06-23 19:21:00
98
转载 从零开始学Go之基本(三):类型转换与常量
类型转换:简单类型转换:(一般是数字之间的转换)表达式:转换类型(转换值)func main() { var i = 42 f := float64(i) var u = uint(f) var p = string(i)//会改变值 fmt.Printf("i type=%T\n",i) fmt.Printf("f type=%T\n",f...
2019-06-23 19:14:00
126
转载 从零开始学Go之基本(二):包、函数声明与格式化输出
包:每个go程序在开头都要有一个package来声明当前包其中包含main函数的包必须为main包来声明入口从零开始学Go之基本(二):包、函数声明与格式化输出导入包:import 包名称//import "fmt" 单个导入import ( "fmt" "math")引用其他包时必须通过import来获取,根据包中的变量...
2019-06-23 18:04:00
71
转载 从零开始学Go之基本(一):基本数据类型与变量
基本数据类型:Go中数据类型并不是特别多,但是有一部分用法却比较多,这一部分放到后面再细学。Go中的基本数据类型有:①整型:int,uint②浮点型:float32,float64③布尔型:bool④字符型:byte,rune⑤字符串型:string⑥复数型:complex64,complex128整型可以按长度分为int8,int16,i...
2019-06-23 00:54:00
90
转载 从零开始学Go之HelloWorld
第一步:环境安装①下载Gohttps://studygolang.com/dl找到对应操作系统以及版本进行下载(如果下载不了就“你懂得”吧)选择msi安装会方便很多(我自己的安装目录D:/Go)②在D盘根目录下创建的一个文件夹GOPATH,进入后再创建三个文件夹并重命名为bin,src,pkg③右键我的电脑-属性-高级管理设置-环境变量...
2019-06-22 23:13:00
106
转载 C++ vector容器使用
准备:头文件:#include<vector>使用:一般声明:vector<{type}> {name,value[可选]}例:vector<int> a;声明一个int数组a[],大小可以改变可以用vector来初始化vector:vector<int> b(a);//声明并用向量a初始化向量bvector&l...
2019-06-03 23:29:00
57
转载 FIRST集和FOLLOW集的计算
FIRST集的定义:设G=(VT,VN,P,S)是上下文无关文法FIRST(a)={a|a=>ab,a∈VT, a,b∈V}若a=>*ε则规定ε∈FIRST (a)FIRST(α)就是从α可能推导出的所有开头终结符号和可能的ε所构成的集合。FIRST集的计算://用通俗的语言讲1.置FIRST(α)为空2.遍历所有产生式左侧是α文法的式子如果...
2019-06-03 23:28:00
587
转载 go编译错误:runnerw.exe:CreateProcess failed with error 216:
刚开的go项目移动了目录之后报了这个错误发现时移动了之后包自动更改了,改为main就好了把程序顶部的package src改为package main就可以运行了go程序找不到main包的入口就会报这个错误了转载于:https://www.cnblogs.com/VingB2by/p/10946664.html...
2019-05-29 22:22:00
291
转载 Linux下vi编辑器常用命令
之前做Linux实验的时候重装了一个新的Linux,这次想偷懒就没用vscode而是直接用起vi写,一开始还有点不习惯,多操作几次把常用命令掌握了就差不多了其实不一定要背下来,写下来然后要用的时候复习一下就可以了。稍微总结一下自己常用的vi命令:1、打开命令:vi [filename](一定要加文件名):打开[filename]文件2、退出命令::q:退出而且...
2019-05-29 16:25:00
83
转载 C++产生随机数理解
rand:rand()函数需要用到头文件#include<cstdlib>,根据种子值返回一个伪随机函数,为什么说是伪随机,是因为程序都是根据一定的算法来实现的,在不设置srand时,默认为调用的是srand(1),由于每次都是一样的种子值,使得每次运行产生的结果都是相同的。#include<iostream>#include<cstdlib...
2018-12-16 19:12:00
125
转载 golang类型检测
要求是对任意的输入类型,对其进行要求的类型的检测,防止不正确的参数输入到后续的函数中package mainimport ("fmt" "reflect")func main(){var a int=8;var b string="as"Vaild(a,"string")Vaild(b,"string")}func Vaild(params interface{},t str...
2018-10-20 19:24:00
147
转载 最小公共祖先lca
3、神秘国度的爱情故事题目要求:某个太空神秘国度中有很多美丽的小村,从太空中可以想见,小村间有路相连,更精确一点说,任意两村之间有且仅有一条路径。小村 A 中有位年轻人爱上了自己村里的美丽姑娘。每天早晨,姑娘都会去小村 B 里的面包房工作,傍晚 6 点回到家。年轻人终于决定要向姑娘表白,他打算在小村 C 等着姑娘路过的时候把爱慕说出来。问题是,他不能确定小村 C 是否在小村...
2018-07-26 23:27:00
191
转载 angular2通过formdata图片上传
图片上传是我目前在angular2中遇到的最棘手的问题虽然图片上传的实现就是文件上传,一路辗转试过ng2-file-upload和ng2-image-upload的使用但是由于项目的开发是前后端分离的,所以最后都死在了跨域问题上(可能我学得不够深不会处理)在怼了快一个月的绝望之后在另一位大大的代码下下解决了这个问题这一部分除了图片其他如视频音乐也能通过修改完成上传和预览...
2018-03-22 17:12:00
514
转载 简单的angular2表单验证
因为项目要用到angular2,在完成功能的基础上在html页面尝试使用响应式表单angular的官方网站虽然有很详细的东西,但是要运用到自己项目上还是要好好理解一番的原本代码:<input type="data" class="form-control" [(ngModel)]="title" placeholder="输入活动标题" required>...
2018-03-15 17:43:00
145
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人