自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

MARATRIX BLOG

不期速成,日拱一卒

  • 博客(57)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 strings.Builder 源码阅读与分析

strings.Builder源码阅读与分析字符串拼接平时工作开发中,对于字符串的拼接是很常见的操作。在 Go 语言中,对于字符串的拼接处理有很多种方法,那么那种方法才是效率最高的呢?相信大部分人都会使用以下方式:使用 bytes.Buffer使用 strings.BuilderBenchmark源码阅读线程不安全最佳实践小结参考...

2020-03-22 12:01:27 1105

原创 Go Hijack黑科技

最近在看Go标准库里面的rpc源码,发现了下面一段代码:// ServeHTTP implements an http.Handler that answers RPC requests.func (server *Server) ServeHTTP(w http.ResponseWriter, req *http.Request) { if req.Method != "CONNECT" ...

2020-02-17 15:35:50 2928

原创 Nginx平滑的基于权重的轮询算法实现

Nginx平滑的基于权重轮询算法描述为:Algorithm is as follows: on each peer selection we increase current_weight of each eligible peer by its weight, select peer with greatest current_weight and reduce its current_we...

2020-02-09 09:54:58 953

原创 Rust学习笔记007-所有权

什么是所有权Rust的核心功能(之一)就是所有权,其令 Rust 无需垃圾回收即可保障内存安全。所有运行的程序都必须管理其使用计算机内存的方式:一些语言中具有垃圾回收机制,在程序运行时不断地寻找不再使用的内存;在另一些语言中,程序员必须亲自分配和释放内存。Rust 则选择了第三种方式:通过所有权系统管理内存,编译器在编译时会根据一系列的规则进行检查。在运行时,所有权系统的任何功能都不会...

2020-02-06 11:08:35 1048

原创 Rust学习笔记006-控制流

if表达式Rust的if...else if ... else基本语法和大多编程语言类似,这里不再赘述。if 条件 { //...} else if 条件 { //...} else { //...}注意,这里的条件表达式不包含()括号,直接写表达式即可:let number = 3;if number > 0 { println!("number was t...

2020-02-05 16:52:35 209

原创 Rust学习笔记005-函数

函数定义使用fn关键字定义函数;函数名使用snake_case规范命名;函数可以定义在main函数之前或之后,Rust 不关心函数定义于何处;fn test_function(a: i32, b: bool) -> u32 { //...}函数参数函数可以定义多个参数,使用逗号,分隔;参数是函数签名的一部分;参数必须指定类型;包含语句和表达式的函数体函数体由...

2020-02-05 13:09:03 271

原创 Rust学习笔记004-数据类型

Rust是静态类型语言,在编译时就必须知道所有变量的类型。两种方式确定类型:根据值及其使用方式,编译器通常可以推断出我们想要用的类型。当多种类型均有可能时,比如第二章的 “比较猜测的数字和秘密数字” 使用 parse 将 String 转换为数字时,必须增加类型注解,...

2020-02-05 10:35:58 285

原创 Rust学习笔记003-变量与可变性

变量声明语法格式:let 变量名: 变量类型 = 变量值;let var: i32 = 123;有几点要注意:以关键字let开头,类型一定跟在冒号:后面;变量必须先声明,初始化后才能使用;可变性Rust中变量默认是不可变的,比如下面运行会报错:let x: i32 = 123;x = 456;//运行报错:cannot assign twice to immutable...

2020-02-04 18:36:20 612

原创 Rust学习笔记002-编程概念

标识符Rust 中的名称被称为 “标识符”(“identifier”),它们可以是任意非空的 ASCII 字符串,不过有如下限制:要么是:第一个字符是字母。其它字符是字母数字或者 _。或者是:第一个字符是 _。标识符需多于一个字符。单独的_不是标识符。其它字符是字母数字或者 _。原始标识符有时出于某种原因你可能需要将关键字作为名称。你可以使用 “原始标识符”(“raw id...

2020-02-04 18:32:46 182

原创 Rust学习笔记001-初相识

Rust is a systems programming language that runs blazingly fast, prevents segfaults, and guarantees thread safety.Rust是一门系统级编程语言,具有三个特点:运行快防止段错误保证线程安全C和C++是业界最流行的系统编程语言,Rust的定位与之类似,但是增加了安全性。...

2020-02-04 18:30:42 395

原创 Rust学习笔记000-安装

今天正式开始学Rust。安装学习一门新语言,第一件事当然是先安装。官方推荐使用rustup工具来管理安装,并提供一键安装命令,只需要在终端执行以下命令即可:curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh其实就是,先下载安装rustup,然后使用rustip来安装Rust。环境变量安装脚本自动将 Rust 加...

2020-02-03 22:17:53 193

原创 Python 学习笔记20-错误和异常

语法错误Python 的语法错误或者称之为解析错:>>> if True print(123) File "<stdin>", line 1 if True print(123) ^SyntaxError: invalid syntax函数 print() 被检查到有错误,是它前面缺少了一个冒号(:),

2018-07-22 10:08:30 220

原创 Python学习笔记19-文件读写

读文件使用内置的 open 函数打开文件:f = open('./data.txt', 'r')如果文件不存在,open() 函数就会抛出一个 IOError 的错误,并且给出错误码和详细的信息告诉你文件不存在:>>> f = open('./aaaaaaa.txt', 'r')Traceback (most recent call last): F...

2018-07-21 08:48:48 236

原创 Python 学习笔记18-模块

什么是模块在 Python 中,一个 .py 文件就是一个模块module。使用模块有什么好处? - 最大的好处是大大提高了代码的可维护性。 - 其次,编写代码不必从零开始。当一个模块编写完毕,就可以被其他地方引用。 - 使用模块还可以避免函数名和变量名冲突。举个例子,一个abc.py的文件就是一个名字叫abc的模块,一个xyz.py的文件就是一个名字叫xyz的模块。包...

2018-07-19 08:58:25 435

原创 Python 学习笔记17-偏函数

Python 的functools模块提供了很多有用的功能,其中一个就是偏函数(Partial function)。在介绍函数参数的时候,我们讲到,通过设定参数的默认值,可以降低函数调用的难度。而偏函数也可以做到这一点。int() 函数可以把字符串转换为整数,当仅传入字符串时,int() 函数默认按十进制转换:>>> int('123')123但 int()...

2018-07-19 08:57:56 199

原创 Python 学习笔记16-装饰器

TODO

2018-07-19 08:57:25 173

原创 Python 学习笔记15-lambda

在 Python 中,我们使用 lambda表达式 来表示匿名函数。Python 对匿名函数提供了有限支持。>>> list(map(lambda x:x**2, range(1, 11)))[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]通过对比可以看出,匿名函数 lambda x:x ** 2 实际上就是:def f(x)...

2018-07-19 08:56:56 171

原创 Python 学习笔记14-高阶函数

变量指向函数函数本身可以赋值给变量,即变量可以指向函数。>>> f = abs>>> f<built-in function abs>>>> f(-100)100说明变量f现在指向了abs函数本身,调用abs()函数和调用f()完全相同。函数名也是变量函数名其实就是指向函数的变量。>...

2018-07-19 08:56:32 197

原创 Python学习笔记13-生成器与迭代器

生成器当我们需要产生很大的一个列表时候如果使用列表生成式,会占用比较大的内存空间,这时我们一种能够边循环边计算的机制来不断推断后续的元素,我们成为生成器。第一种形式只要把一个列表生成式的[]改成(),就创建了一个生成器:>>> it = (x*2 for x in [1,2,3])>>> it<generator object ...

2018-07-13 11:15:42 151

原创 Python学习笔记12-列表生成式

列表推导式提供了从序列创建列表的简单途径。通常应用程序将一些操作应用于某个序列的每个元素,用其获得的结果作为生成新列表的元素,或者根据确定的判定条件创建子序列。如果要生成类似 [1*1, 2*2, 3*3...n*n] 这样的列表,该如何做?笨方法当然可以利用for循环来实现了,但是太繁琐。python 提供了列表生成式可以用一行代码来实现。如何写列表生成式>&g...

2018-07-12 09:06:01 392

原创 Python学习笔记11-切片与迭代

list 切片取一个 list 或者 tuple 的部分元素是很常见的操作,笨方法如下:l = list(range(10))print([l[0], l[1], l[2]])输出:[0, 1, 2]python 提供了切片操作符,大大简化了这种操作:L = list(range(10))print(L[0:3])L[0:3]表示,从索引0开始取,直到索引3为止...

2018-07-12 09:05:21 305

原创 Python学习笔记10-函数

函数定义函数代码块以 def 开头,后接函数标识符名称和圆括号 ()圆括号之间用于定义参数函数的第一行代码可以选择性地使用文档字符串来存放函数说明函数内容以冒号 : 开始,并且缩进return 表达式结束函数,不带表达式的 return 或者没有 return 相当于返回 None语法def 函数名(): 函数体空函数如果想定义一个什么事也不做的...

2018-07-11 09:11:31 348

原创 Python学习笔记09-条件语句与循环

条件语句python 中使用 if-elif-else 条件语句来执行代码块。注意: - 每个条件后面使用:来表示满足条件后执行的代码块。 - 使用缩进来划分语句块,相同缩进的语句一起组成一个语句块。 - python 中没有 switch-case 语句。>>> age = 20>>> if age >= 18:... ...

2018-07-09 09:30:42 284

原创 Python学习笔记08-集合

什么是集合集合 set 是一个无序不重复元素的序列。set 和 dict 类似,也是一组 key 的集合,但不存储 value。由于 key 不能重复,所以,在 set 中,没有重复的 key。在 python 中,使用大括号 {} 或者 set() 来创建集合。注意: 创建一个空集合必须使用 set() 而不能使用 {},因为 {} 是用来创建一个空字典的。>&gt...

2018-07-09 08:43:30 199

原创 Python学习笔记07-字典

什么是字典Python 内置了字典 dict 的支持,可以存储任意类型对象,在其他语言中也称为 map,使用键 - 值(key-value)对存储,具有极快的查找速度。字典的每个键值对使用冒号:分割,每个对之间使用逗号,分割,整个字典包括在花括号{}里面:dd = {'name':'maratrix', 'age': 18}字典的特性字典值可以是任何数据类型,但键必须是...

2018-07-06 15:10:39 176

原创 Python学习笔记06-元组

什么是元组另一种有序列表叫做元组tuple。tuple 和 list 很相似,但是 tuple 一旦创建就不能再修改。元组使用小括号(),列表使用中括号[]。元组和列表共同特性:索引:使用方括号 [] 进行索引访问,如 seq[0]切片:使用方括号 [:] 进行切片,如:seq[2:7]加:使用加号 + 进行序列拼贴,如: seq = seq1 + seq2乘:使用...

2018-07-06 15:09:54 262

原创 Python学习笔记05-列表

Python 包含 6 种内建的序列,即:列表元组字符串 unicode 字符串 buffer 对象 xrange 对象序列都可以进行以下通用的操作:索引:使用方括号[ ] 进行索引访问,如 seq[0]切片:使用方括号 [:] 进行切片,如:seq[2:7]加:使用加号 + 进行序列拼贴,如: seq = seq1 + seq2乘:使用乘号 * 进行序列重复...

2018-07-06 15:09:09 148

原创 Python学习笔记04-字符串连接总结

在 Python 中字符串连接有多种方式,这里简单做个总结,应该是比较全面的了,方便以后查阅。加号连接第一种,通过+号的形式:>>> a, b = 'hello', ' world'>>> a + b'hello world'逗号连接第二种,通过,逗号的形式:>>> a

2018-07-06 15:06:45 255 1

原创 Python学习笔记03-数据类型与变量

数据类型计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值。但是,计算机能处理的远不止数值,还可以处理文本、图形、音频、视频、网页等各种各样的数据,不同的数据,需要定义不同的数据类型。在 Python 中,能够直接处理的数据类型有以下几种:整型在 python3 中只有一种整型int,可以处理任意大小的整数,包括负整数,大小没有限制。/ 和 ...

2018-07-06 15:04:49 221

原创 Python学习笔记02-运算符

什么是运算符举个简单的例子 4 +5 = 9 。 例子中,4 和 5 被称为操作数,”+” 称为运算符。Python 语言支持以下类型的运算符: - 算术运算符 - 比较(关系)运算符 - 赋值运算符 - 逻辑运算符 - 位运算符 - 成员运算符 - 身份运算符 - 运算符优先级这里只总结下python特有的运算符,其他运算符和别的语言差不多,不再赘述。逻辑运算...

2018-07-06 15:01:35 209

原创 Python学习笔记01-基本语法

编码默认情况下,python3 源码文件是以 utf-8 编码的,所有的字符串都是 unicode 字符串,当然也可以指定不同的编码# -*- coding:utf-8 -*-或者# coding=utf-8或者# coding:utf-8或者# vim: set fileencoding=utf-8 :注意: - 必须将编码注释放在第一行或者第二行 - 有以上可选...

2018-07-06 14:58:23 279

原创 如何解决浏览器无法打开网页问题

今天下午,在公司安装一个小的工具软件后,出现了浏览器无法打开网页的问题,然后试了下我本机安装的所有浏览器发现都不能正常打开网页了,尝试了很多方法都无法解决,最后怒卸chrom浏览器然后重新安装以期望能够解决,令人失望的是还是无法正常访问,最终放弃了。晚上回家后,心里还是很不爽,总想着把这个问题解决掉,经过各种搜索,最终给解决了,汗 :)导致这个问题发生的原因是由于windows系统

2015-07-03 22:38:56 4763

原创 php如何输出中文json格式字符串

如何对json格式的字符串进行转换,php提供了两个函数:json_encode 对变量进行 JSON 编码json_decode 对 JSON 格式的字符串进行编码下面看个实例:$arr = ['a', 'b', 'c'];echo json_encode($arr);输出为:["a","b","c"]但是,当我们在数组中放入中文的时候,就会出现问题

2015-07-03 22:35:07 3626

原创 Kindle爱之初

自入手kindle差不多已经一个月了,这将近一个月的阅读体验确实本人感概良多,发现自己更爱读书了,也逐渐喜欢上和离不开 kindle了(推荐给喜欢阅读的小伙伴们~)。其实,早就有写一篇博客来记录这段时间的kindle初体验的想法了,奈何拖延综合症根深蒂固,自己无法自拔。今日早醒,神经恍惚,突然意识到不能再拖延了,于是才有了下面的内容,欢迎拍砖 :)购买kindle之初一二事其实,早

2015-02-07 18:09:10 888

原创 Vim使用技巧の快速加密

我们知道对于Linux服务器来说是支持多用户多任务环境的,聪明的Linux同学给我们每个用户都有各自的权限,彼此工作互不干扰。但是环境中有一个Super man存在呢,谁拥有它的权限就可以'偷窥'别人隐私了,真是不讲理。那么问题来了,我既没有super man权限,又不想给super man来看我们隐私,咋办呢?今天,教您一招来保护自己的隐私,推翻霸道的super man独裁的世道,就这么

2014-12-30 16:33:05 725

原创 对数据库取出的数据进行递归过滤

首先,介绍个很有用的函数htmlspecialchars(),相信大家都不陌生吧,没错,zh

2014-05-14 20:25:20 1376

原创 PHP中延迟静态绑定机制

学习PHP时,我们都知道静态方法,静态方法可以用作工厂方法,xage

2014-05-11 22:38:47 834

原创 浅谈PHP中自动加载类库机制

在php开发过程中

2014-05-10 13:10:18 2249

原创 Ubuntu下面adduser和useradd创建用户命令的一点总结

大家都知道,在ubuntu中创建用户有两个hao

2014-05-09 20:54:41 5192

转载 批判的价值

作者:王垠网址:

2014-05-06 11:18:58 754

php开发手册

php开发手册,可以有效地帮助开发人员查看

2014-04-06

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除