自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 Rust面向对象(依赖注入)

面向对象设计中的SOLID原则分别是:S:单一责任原则(SRP),Single Responsibility PrincipleO:开放封闭原则(OCP),Open-Closed PrincipleL:里式替换原则(LSP),Liskov Substitution PrincipleI:接口分离原则(ISP),Interface Segregation PrincipleD:依赖倒置原则(DIP),Dependency Inversion Principle依赖注入是面向对象的DIP 原则。

2023-10-11 20:00:00 239

原创 rust 生命周期

Rust 中的每一个引用都有其 生命周期(lifetime),也就是引用保持有效的作用域。大部分时候生命周期是隐含并可以推断的,正如大部分时候类型也是可以推断的一样。在函数或者方法签名中表示引用的生命周期,通过生命周期注解描述引用有效的作用域,从而避免悬垂引用和数据竞争等问题。Rust 编译器有一个 借用检查器(borrow checker),用来确保所有的借用都是有效的。//悬垂引用let r;let x = 5;r = &x;}//x 已经离开作用域//数据竞争。

2023-09-28 20:15:00 79

原创 rust 的主要应用

Rust第二阶段学习

2023-09-04 23:00:00 1436

原创 Rust学习(通过例子学习Rust)(4)

通过例子学习rust 知识

2023-08-31 23:00:00 112

原创 Rust学习(通过例子学习Rust)(3)

Rust 入门学习

2023-08-30 21:15:00 64

原创 Rust学习(通过例子学习Rust)(2)

Rust 中的闭包(closure),也叫做 lambda 表达式或者 lambda,是一类能够捕获周围作用域中变量的函数// 通过闭包和函数实现自增//注意结尾没有分号i + 1let i = 1;println!println!println!println!");

2023-08-29 15:27:32 87 1

原创 Rust学习通过例子学习Rust(1)

通过例子学习rust

2023-08-27 10:00:00 56

原创 Rust参考手册学习(4)

每个值都是一个唯一的特定的类型,但是可以实现几个不同的 trait,或者兼容几个不同的类型约束。,除了它在程序中表示一个精确的内存位置。所有对静态项的引用都指向相同的内存位置。生存期,它比 Rust 程序中的所有其他生存期都要长。程序项在编译时就完全确定下来了,通常在执行期间保持结构稳定,并可以驻留在只读内存中。它们也能接受内部属性:可以在带有代码体的模块的。之后,也可以在模块源文件的开头(但须在可选的 BOM 和 shebang 之后)。在2015版中,只有类型的函数参数只允许出现在。

2023-08-26 21:30:00 90

原创 Rust参考手册学习(3)

crate 和 条件编译学习

2023-08-25 23:00:00 218

原创 Rust参考手册学习(2)

定义宏时,宏在定义之后进入其作用域(请注意,这不影响宏在定义中递归调用自己,因为宏调用的入口还是在定义之后的某次调用点上,此点开始的宏名称递归查找一定有效),在封闭它的作用域(通常是模块)结束时离开。过程宏其实是在 *token流(token streams)*上操作,而不是在某个或某些 AST 节点上操作,因为这对于编译器和过程宏的编译目标来说,这是一个随着时间推移要稳定得多的接口。默认情况下,宏中引用的所有标识符都按原样展开,并在宏的调用位置上去查找。宏调用是在编译时执行宏,并用执行结果替换该调用。

2023-08-24 22:00:00 47

原创 Rust参考手册学习(1)

token 是采用非递归方式的正则文法(regular languages)定义的基本语法产生式(primitive productions)。1. 标识符或关键字:首字母 XID_start(字母), XID_continue*其他(字母或者下划线);Rust是一种“格式自由(free-form)”的语言,这意味着所有形式的空白符在文法中仅用于分隔。* // 开头 结果多个\n或者0个 ,这类关键字只有在特定的上下文中才有特殊的意义;LINE_COMMENT : //行注释。

2023-08-23 22:30:00 132

原创 Rust 学习(5)

宏分为 声明宏和过程宏;

2023-08-22 21:30:00 36

原创 Rust 学习(4)

目前为止讨论过的代码都有 Rust 在编译时会强制执行的内存安全保证。然而,Rust 还隐藏有第二种语言,它不会强制执行这类内存安全保证:这被称为 不安全 Rust(unsafe Rust)。它与常规 Rust 代码无异,但是会提供额外的超能力。所谓的不安全是指,编译器无法确保足够的安全;如果使用不安全的rustunsafe: 关键字只是提供了那五个不会被编译器检查内存安全的功能,因此保持unsafe 代码快的足够小非常与必要;不安全包含那些方面;解决不安全的方式:将不安全代码封装进一个安全的抽象并提供

2023-08-18 22:30:00 32

原创 Rust 学习(3)

Cargo 的设计使得开发者可以通过新的子命令来对 Cargo 进行扩展,而无需修改 Cargo 本身。如果$PATH中有类似的二进制文件,就可以通过来像 Cargo 子命令一样运行它;

2023-08-17 23:00:00 34

原创 Rust 学习(2)

rust 学习

2023-08-16 17:43:45 36

原创 Rust学习(1)

rust 版本分3种: 1. stable(稳定的),2. nightly(试验性功能版本),3. Bate(测试)字面量来说,我们在编译时就知道其内容,所以文本被直接硬编码进最终的可执行文件中。在 Rust 中,惯用的注释形式以两个斜杆开头,直到该行尾结束。Rust 通过所有权系统管理内存,编译器在编译时会根据一系列的规则进行检查来避免程序运行时的时间消耗;Rust 有两种基本的复合类型:元组(tuple)和数组(array)1. 每个值都拥有一个所有者;,为了支持一个可变,可增长的文本片段,需要在。

2023-08-15 18:22:10 37

原创 设计模式学习-工厂模式

<?php/** * 工厂模式 */interface A{ function test();}class B implements A{ public function test() { echo 'b test'.\n; }}class C implements A{ public function test() { echo 'c test'.\n; // TODO: Implemen

2020-09-21 09:10:27 58

原创 设计模式学习-单例模式

<?php/** * Class Singleton 单利模式 * 三私一共 */Class Singleton{ private static $instance = ''; private function __construct(){} private function __clone(){} public static function getInstance(){ if(!(self::$instance instanceof sel

2020-09-21 08:56:03 56

原创 centos docker 安装

### docker yum-util 提供yum-config-manager功 devicemapper驱动依赖sudo yum install -y yum-utils device-mapper persistent-data lvm2 ### 源切换 sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo ### doccker 安装

2020-09-16 21:19:58 70

原创 zookerper学习

zookeeper 安装学习mac 下安装http://mirrors.hust.edu.cn/apache/zookeeper/下载bin包, 源码包不能直接使用cd /data/soft/apache-zookeeper-3.6.1/confcp zoo_sample.cfg zoo.cfgvi zoo.cfg# The number of milliseconds of each tick // 服务端和客户端的心跳时间间隔tickTime=2000# The number of t

2020-06-22 02:50:26 153

原创 mac java安装

mac 下java 安装检测是否安装java -version java 下载https://www.oracle.com/webapps/redirect/signon?nexturl=https://download.oracle.com/otn/java/jdk/8u251-b08/3d5a2bb8f8d4428bbe94aed7ec7ae784/jdk-8u251-macosx-x64.dmg环境变量配置(注: 在终端输入 /usr/libexec/java_home 可以得到JA

2020-06-19 00:48:31 186

原创 git本地创建

git config --global user.name "goran.guo";git config --global user.email "347470219@qq.com";ssh-keygen -t rsa -C “347470219@qq.com”

2020-05-23 22:24:19 96

原创 一次代码rebase 的操作记录

分支情况由于项目开发周期间隔较长 branch 分支 落后 master 分支3次合并,为了避免合并master 错误,保持了良好的版本迭代,容易追溯,方便回滚。,在合并demo 封版之前对开发进行rebase 操作。操作步骤git checkout master git pull git checkout “开发分支”git pull origin master --rebase ...

2020-02-21 14:13:52 300

原创 MAC 下go多版本构建

MAC 下go 安装在这里插入代码片brew install go brew install go@1.12 brew install go@1.11mv go@1.11/* go/mv go@1.12/* go/### 版本切换brew switch go 1.11.13brew switch go 1.12.14brew switch go 1.13.5###环境变...

2020-01-11 09:39:18 1218

原创 GO学习资料

go 资料总结go 圣经https://yar999.gitbooks.io/gopl-zh/content/https://legacy.gitbook.com/book/yar999/gopl-zh/discussionsgo 入门指南https://github.com/unknwon/the-way-to-go_ZH_CN.gitgo 数据库相关TIDBhttps://g...

2020-01-10 22:58:55 113

转载 composer 管理和使用

composerComposer 是 PHP 的一个依赖管理工具,我们可以在项目中声明所依赖的外部工具库。Windows 环境安装和使用下载:https://getcomposer.org/Composer-Setup.exe添加国内镜像:composer config -g repo.packagist composer https://packagist.phpcomposer....

2019-09-25 22:01:24 268

原创 php 线程安全和非安全模式的使用场景

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...

2019-08-08 18:32:03 489

空空如也

空空如也

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

TA关注的人

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