自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 资源 (5)
  • 收藏
  • 关注

翻译 rust的Iterator

这个文章讲的还是挺详细的,有空了再翻译下http://hoverbear.org/2015/05/02/a-journey-into-iterators/

2015-09-29 15:18:56 961

原创 查找rust平台相关代码的文档

今天查encode_wide这个函数一直找不到,google才发现是online文档的问题rust的online文档是linux上生成的,所以有些windows上的东西查不到,查找与windows相关的doc使用本机上自带的doc具体在安装路径下: share\doc\rust\html\index.html 比如我的: C:\Program Files\Rust nightly 1.5\sh

2015-09-29 14:24:59 1358

原创 notepad++ 正则替换的占位符超过9的处理方法

notepad++的正则替换的时候使用()进行分组,然后用\1 \2 …\9代替这些分组匹配到的信息,但是超过9以后 \10,\11这种就不能工作了,这个时候需要用10,10,11这种方法,其实\1 \2 …\9也可以用11 2 … $9来替代sublime text 使用$xx 也可以正常工作

2015-09-25 15:02:56 2205

原创 含有重复元素的二分查找算法

rust已经有binary_search了,但不能很好的处理有重复元素的查找。 下面这个是我按照网上查找到的原理自己实现的,这个处理重复元素比较好,如果key有重复,那么总是查找到最小的那个indexfn main() { let s = [0, 0,0,0,0,1,1,1, 1, 1, 1, 2,2,3, 3, 5, 8, 13, 21, 34, 55]; let seek = 1

2015-09-18 10:19:17 7323

原创 Rc与Box区别

咋一看觉得这两个概念差的很远,但是有时候他们都可以在不释放资源的情况下把资源从lifetime短的地方传递到lifetime长的地方use std::rc::Rc;#[derive(Debug)]struct Foo(i32);fn main(){ let r:Rc<Foo>; let b:Box<Foo>; { let r1 = Rc::new(Foo(

2015-09-16 12:11:32 1729

原创 多个closure引用同一个变量,并且可能需要mut borrow

目前在实现一个事件系统,事件采用保存closure的方式实现,这其中遇到一个比较棘手的问题就是如果其中一个closure用&mut方式捕捉了一个变量,那么其他closure就不可以再用任何方式捕捉这个变量(rust的borrow check系统),并且如果要&mut捕捉还需要把closure的类型写成FnMut,类似这种: add_event<F>(&mut self,f:F) where F:F

2015-09-16 10:53:01 780

原创 Sized和?Sized的作用

考虑如下代码,这个是用Foo封装了两个Box类型,Bar把Fn(i32)作为类型传递给Foo并且把Foostruct Foo<T>{ a:Box<T>, b:Box<T>,}struct Bar{ fs:Foo<Fn(i32)>,}fn main(){}这个代码是无法编译通过的,下面是编译器提示:<anon>:7:5: 7:20 error: the trait `co

2015-09-09 23:14:39 5634

转载 rust compile plugin的使用方法

具体可以参考这篇文章: https://www.gulshansingh.com/posts/how-to-write-a-rust-syntax-extension/

2015-09-06 15:10:19 862

原创 调试rust的宏

nightly版本可以用 trace_macros!,具体看这个: http://stackoverflow.com/questions/30200374/how-do-i-debug-macros下面是我写的列子:#![feature(trace_macros)]trace_macros!(true);macro_rules! foo{ ($x:ident,$f:ident)=>{

2015-09-05 21:26:33 8200

原创 rust里closure的move和Fn,FnMut,FnOnce

https://www.reddit.com/r/rust/comments/2ti57s/iron_framework_and_lifetime_problems_with/. There seems to be two cases where a captured value is moved, copied or borrowed: when a closure is made (crea

2015-09-04 21:50:34 2555

原创 在rust里使用unstable feature

使用unstable feature的条件和步骤: 1. 只有nightly才可以使用unstable 2. 找到unstable feature的名字 3. #![feature(xxx)]启用这个feature下面是 std::ptr里的as_ref引起的 编译器错误来举例: use of unstable library feature ‘ptr_as_ref’: Option is

2015-09-04 09:16:37 7052

原创 在rust里使用c样式的函数指针

Fn(i32)->i32这个是trait,&Fn(i32)->i32这个是trait object,有lifetime的 fn(i32)->i32这种就是c里的函数指针了,这个是没有lifetime的fn hello(i:i32)->i32{ println!("hello:{}",i); i+100}fn hi(f:fn(i32)->i32){ f(3);}struc

2015-09-01 16:15:31 2619

原创 rust泛型过度使用思考

目前了解来看rust泛型的概念很好,比c++多了很多类型限定和编译时检查,出错提示相对c++来说也特别特别的友好。但任何事物总是有两面性,过度的使用泛型会使得代码极度的膨胀,这个膨胀的速度在我看来比c++的模板快多了1 trait里的默认函数和方法引起的代码膨胀首先来看一段简单的代码:trait Foo{ fn foo(){ println!("foo"); }

2015-09-01 11:15:44 4321 2

原创 rust的一些细节

与其说是细节还不如说是一些“废话”,不仔细想的时候会感觉到模棱两可的东西都记录下来trait里的函数和方法可以在其他impl里使用,但是类型自己的impl的函数不能在trait里调用其实这个也比较好理解,可以有很多的type可以实现trait,那么trait就不可能调用某个特定类型自己的方法或者函数;反过来某个类型实现了某个trait则trait的函数必然可以调用struct Foo;impl Fo

2015-09-01 09:20:17 905

Iar_vs2010

iar 工程转成vs2010工程

2015-05-20

在Go包里添加C代码并且不使用CGO(不需要gcc)

在Go包里添加C代码并且不使用CGO(不需要gcc)http://blog.csdn.net/varding/article/details/12677315 上面这个文章里的测试代码工程打包 可能有些朋友对golang了解的还不是很透彻,编译什么的还有些疑问,所以我把这个工程打包传上来了,希望大家能一次测试通过 同时也对go build , go test ,go install之类的使用有个整体的了解

2013-10-13

Programming.in.Go

Programming.in.Go 完整版

2013-01-24

wxwidgets集成IE浏览器控件

wxwidgets里使用IE控件的方法 里面包含了: 1.网上下载的源代码工程 2.我修改后可以直接编译的工程 3.一个编译好了的release程序可以直接运行

2010-06-10

空空如也

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

TA关注的人

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