-
使用Rust开发操作系统(一个最小的内核)
一个最小的内核 启动 编译 LLVM Target Triple Data Layout 重新编译core库 运行 下一步要做什么 在上一节中我们搭建了编写内核程序的最基本的项目结构,并且使用了nightly版的Rust编译器,在本节中我们构建一个最小的适用于x86结构的64位系统,我们 启动 当你按下电源按钮的时候,它开始执行存储在主板ROM中的固件代码,此代码执行开机自检,检测可用的RAM,然…- 105
- 0
-
[易学易懂系列|rustlang语言|零基础|快速入门|(29)|实战6:BDD工具cucumber_rust]
[易学易懂系列|rustlang语言|零基础|快速入门|(29)|实战6:BDD工具cucumber_rust] 项目实战 实战6:BDD工具cucumber_rust 今天我们来学习下BDD行为驱动测试工具cucumber_rust。 关于BDD,可以简单看看这些介绍: https://www.cnblogs.com/superhin/p/11454716.html\#bdd%E4%BB%8B%…- 49
- 0
-
[易学易懂系列|rustlang语言|零基础|快速入门|(10)|Vectors容器]
[易学易懂系列|rustlang语言|零基础|快速入门|(10)] 有意思的基础知识 Vectors 我们之前知道array数组是定长,只可我保存相同类型的数据的数据类型。 如果,我们想用不定长的数组呢?因为很多时候,数据有可能是或多或少,不确定个数的。 这时候,vector就出场了。 在Rust,vecotr是可变长度的数组,用于保存相同类型的数据。 vector是引用类型,其数据也是动态地在堆…- 18
- 0
-
使用Rust开发操作系统(Rust内联汇编)
Rust内联汇编 Rust内联汇编 assembly template 约束 输出约束 * 输入约束 Clobber约束 options 更多例子 开始干活 下一步要做什么 Rust内联汇编 Rust的内联汇编基础语法如下(需要启用#!(feature(asm))) 1 2asm!( 3 assembly template 4 : 输出操作数 5 : 输入操作数 6 : Clobber 7 : 选…- 122
- 0
-
[译] 用 Rust 打造你的第一个命令行工具
原文地址:Your first CLI tool with Rust 原文作者:Jérémie Veillet 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/gold-m… 译者:JackEggie 校对者:TloveYing 在精彩的编程世界里,你可能听说过这种名为 Rust 的新语言。它是一种开源的系统级编程语言。它专注于性能、内存安全和并行性。你可以像 C/C++ 那…- 39
- 0
-
Rust 1.7.0 匹配器 match 的简单介绍和使用
使用过正则表达式的人应该都知道 matcher ,通过 matcher 匹配器运算正则表达式,完成一系列的匹配规则。 在Rust 中 没有 switch 语句,matcher 就是 switch 的一个变形,但比其他语言中的 switch 更强大! 一、简单举例说明 简单的 matcher 和 if 语句非常类似,如果是简单的条件判断可以用if语句: 1let n = 5; 2 3if n <…- 9
- 0
-
那些你不知道的Dart细节之变量(一)
前言 好久没写Flutter了,之前接触Flutter还是为了玩一玩,看着这样一个新的、好评如潮的跨平台技术,觉得是该玩一玩了,之前的RN就没玩就要凉了,毕竟RN不是Google的亲儿子,但是Flutter是啊,而且Dart也是啊。 未来的几篇文章准备写一个Flutter的专题,最起码要把之前忽略的一些细节都给补上。好了,废话不多说,下面直接开始。 那些你不知道的Dart细节之变量 那些你不知道的…- 14
- 0
-
dart 异步事件执行流程分析(二)
// use two list to test the async envet exe order. // one record the emitted order; // and the other record the captured order; import 'dart:math'; final rnd = Random(); final seed = 10; f…- 8
- 0
-
GO语言系列(四)- 内置函数、闭包与高级数据类型
一、内置函数、递归函数、闭包 内置函数 close:主要用来关闭channel len:用来求长度,比如string、array、slice、map、channel new:用来分配内存,主要用来分配值类型,比如int、struct。返回的是指针 make:用来分配内存,主要用来分配引用类型,比如chan、map、slice append:用来追加元素到数组、slice中 panic和recove…- 12
- 0
-
比特币全节点Go语言实现BTCD之地址编码解析
比特币地址 由一串字符和数字组成,类型主要有两种,一个是P2PKH地址,一个是P2SH地址。P2PKH地址其实是通过对160位二进制公钥哈希值进行base58check编码后的信息。 咱们看代码实现,btcd仅仅实现全节点,没有钱包功能,所以没有提供地址的创建的客户端,不过咱们可以大概分析下地址解码过程。 1func DecodeAddress(addr string, defaultNet *c…- 48
- 0
-
Go语言编程(一)之Go语言特性
自动垃圾回收 内存泄露的最佳解决方案是在语言级别引入自动垃圾回收算法(Garbage Collection,简称GC)。所谓垃圾回收,即所有的内存分配动作都会被在运行时记录,同时任何对该内存的使用也都会被记录,然后垃圾回收器会对所有已经分配的内存进行跟踪监测,一旦发现有些内存已经不再被任何人使用,就阶段性地回收这些没人用的内存。当然,因为需要尽量最小化垃圾回收的性能损耗,以及降低对正常程序执…- 18
- 0
-
golang 构建工具之 Makefile
可能是因为编译太简单了,golang 并没有一个官方的构建工具(类似于 java 的 maven 和 gradle之类的),但是除了编译,我们可能还需要下载依赖,运行测试,甚至像 easyjson,protobuf,thrift 这样的工具下载和代码生成,如果没有构建工具,这些工作就会非常麻烦 为了解决这个问题,之前写过一个 everything.sh 的脚本,把所有的操作都封装在这个脚本里面,只…- 45
- 0
-
GOlang服务器使用CapnProto, Protobuf, RapidJson, SBE, FlatterBuff协议调研比较以及最后选择
GOlang服务器使用CapnProto, Protobuf, RapidJson, SBE, FlatterBuff协议调研比较以及最后选择。 1.先排除RapidJson. 2. 给出的解释是SBE,FlatterBuff,和CapnProto相对于ProtoBuf最大的优点是0拷贝(不需要编码和解码过程)。 FlatterBuf和CapnProto采用随机存取。 SBE没有自己的Scheme…- 109
- 0
-
C++ 对象的内存布局(下)
重复继承 下面我们再来看看,发生重复继承的情况。所谓重复继承,也就是某个基类被间接地重复继承了多次。 下图是一个继承图,我们重载了父类的f() 函数。 其类继承的源代码如下所示。其中,每个类都有两个变量,一个是整形(4 字节),一个是字符(1 字节),而且还有自己的虚函数,自己overwrite 父类的虚函数。如子类D 中,f() 覆盖了超类的函数, f1() 和f2() 覆盖…- 6
- 0
-
Windows内存管理机制及C++内存分配实例(六):堆栈
·使用场合 操作系统为每个线程都建立一个默认堆栈,大小为1M。这个堆栈是供函数调用时使用,线程内函数里的各种静态变量都是从这个默认堆栈里分配的。 ·堆栈结构 默认1M的线程堆栈空间的结构举例如下,其中,基地址为0x0004 0000,刚开始时,CPU的堆栈指针寄存器保存的是栈顶的第一个页面地址0x0013 F000。第二页面为保护页面。这两页是已经分配物理存储器的可用页面。 随着函数的调用,系…- 34
- 0
-
从零搭建自己的SpringBoot后台框架(二十一)
在项目中大多会使用定时任务来定时执行一些操作,如:文件迁移,备份等。今天就来跟大家一起学习下如何在SpringBoot中创建定时任务。 一:创建定时任务 创建core→tesks→tesk.java 1package com.example.demo.core.tasks; 2 3import org.springframework.scheduling.annotation.EnableSche…- 20
- 0
-
从零搭建自己的SpringBoot后台框架(六)
一:什么是Swagger Swagger是一款通过我们添加的注解来对方法进行说明,来自动生成项目的在线api接口文档的web服务。 二:添加Swagger2依赖 1<dependency> 2 <groupId>io.springfox</groupId> 3 <artifactId>springfox-swagger2</artifactId…- 11
- 0
-
Spring Boot整合JWT实现用户认证
JWT实现用户认证 在介绍完JWT之后我们使用springboot整合JWT实现用户认证。 前后端分离使用JWT做用户认证(概述) JWT实现认证的原理 服务器在生成一个JWT之后会将这个JWT会以Authorization : Bearer JWT 键值对的形式存放在 cookies里面发送到客户端机器,在客户端再次访问收到JWT保护的资源URL链接的时候,服务器会获取到cookies中存放的…- 64
- 0
-
springboot整合mongodb实现增删改查
引入jar包 1 <!-- https://mvnrepository.com/artifact/org.mongodb/mongodb-driver --> 2 <dependency> 3 <groupId>org.mongodb</groupId> 4 <artifactId>mongodb-driver</artifactI…- 38
- 0
-
SpringBoot多环境切换
profile是Spring对不同环境提供不同配置功能的支持,可以通过激活不同的环境版本,实现快速切换环境; 方式一:多配置文件 我们在主配置文件编写的时候,文件名可以是 application-{profile}.properties/yml , 用来指定多个环境版本; 例如:application-test.properties 代表测试环境配置 application-dev.prop…- 3
- 0
-
SpringBoot整合Filter
SpringBoot 整合 Filter 方式一:通过注解扫描完成 Filter 组件的注册 创建项目,在pom.xml文件中导入依赖。 1<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xs…- 18
- 0
-
使用Docker部署Spring Boot项目
本文使用Docker部署Spring Boot项目。部署之前需要环境中已经安装Docker和Maven(用于打包),所以本文先进行安装Docker和Maven;接着搭建一个Spring Boot项目,使其支持Docker部署;最后进行部署和测试。 环境搭建 安装Docker 检查系统内核版本 Docker运行在CentOS 7上,要求操作系统为64位,内核版本为3.10及以上。 确认本机已经安装了…- 135
- 0
幸运之星正在降临...
点击领取今天的签到奖励!
恭喜!您今天获得了{{mission.data.mission.credit}}积分
我的优惠劵
-
¥优惠劵使用时效:无法使用使用时效:
之前
使用时效:永久有效优惠劵ID:×
没有优惠劵可用!


![[易学易懂系列|rustlang语言|零基础|快速入门|(29)|实战6:BDD工具cucumber_rust]](https://aqzt.com/wp-content/uploads/20220223064501-6.png)










