- 博客(27)
- 资源 (22)
- 收藏
- 关注
原创 Rust 1.7.0 匹配器 match 的简单介绍和使用
使用过正则表达式的人应该都知道 matcher ,通过 matcher 匹配器运算正则表达式,完成一系列的匹配规则。在Rust 中 没有 switch 语句,matcher 就是 switch 的一个变形,但比其他语言中的 switch 更强大!一、简单举例说明简单的 matcher 和 if 语句非常类似,如果是简单的条件判断可以用if语句:let n = 5;if n < 0 { pri
2016-03-28 21:21:06 18124 2
原创 Rust 1.7.0 macro宏的复用 #[macro_use]的用法
Rust 1.7.0 中的宏使用范围包括三种情况: 第一种情况是宏定义在当前文件中,这个文件可能是 crate 默认的 module,也可能是任意的 module 模块。 第二种情况是宏定义在当前 crate ,但是不是在当前文件中,而是其他 module 模块中。 第三种情况是宏定义在其他的 crate 中,或者其他的 crate 子模块中。使用#[macro_use] 可以使被注解的mod
2016-03-26 22:05:00 18883 1
原创 Rust 1.7.0的macro宏-语法分析和使用举例
macro 宏的概念在很多语言中都有。通常情况下,宏的机制是在预编译阶段对已经定义的宏进行替换或者 expanded 展开 ,即:把宏按照名称替换成宏的内容。Rust 中的宏,与众不同!Rust中的宏,也是在预编译阶段进行处理。宏不仅仅是替换内容和展开,还可以像功能函数一样,接收参数、调用其他的宏。一、简单的宏宏的名称和功能函数名称很像,只不过在函数名称后面有一个叹号!一个简单的宏定义和调用:mac
2016-03-24 19:40:43 8259
原创 Rust 提供的 lint 检查项说明
Rust 程序在编译的时候,提供各种类型的检查。 除了系统默认的一些检查,使用者还可以根据自身的需要,修改检查项的默认状态,定制自己的编译检查规则。 比如, #![deny(missing_docs)] 强制要求当前文档必须有针对 crate 的注释。一、lint 检查项列表 标识名称 默认状态 含义说明 box-pointers allow use of owned (B
2016-03-24 08:35:48 6788
原创 Rust 1.7.0 之 #![deny(missing_docs)]
现在我使用的Rust 环境是 V 1.7.0 ,因为在 Rust 的官方网站运行页面上的例子,有些地方执行后的结果和预期的不一样。 可能在 Rust 学习过程中,会遇到 Rust 语言不完善的地方。这里根据实际的语句进行语法和语义的学习。之前提到过 Rust 的注释,包括四种 :(详细内容见 http://blog.csdn.net/teamlet/article/details/50855777
2016-03-23 23:20:33 4890
原创 Rust Attribute的十三个分类包含的注释
Rust 的 Attribute 注释到目前为止(当前版本 rustc 1.7.0 (a5d1e7a59 2016-02-29)一共包括十三个种类。一、只用于 crate 的 attributecrate_name - specify the crate’s crate name.crate_type - see linkage.feature - see compiler features.
2016-03-20 12:21:56 6245
原创 Rust 中用于编译的注释 Attribute
使用Java的人都知道,Java有个 annotation 注释。 Rust 也有注释,名称和C#的注释一样,叫做 attribute。Rust 的attribute 与 Java annotation以及 C# 的attribute注释一样,是在编译阶段用于为编译提供更多描述信息,以便在编译的时候可以根据这些描述做出一些动态的选择和设置。一、Rust 的 attribute 种类Rust 包括两
2016-03-19 18:01:54 8169
原创 Rust 使用外部功能函数的几种方式
Rust 提供了代码封装的机制。可以通过crate (等同于Java中的package)创建相对独立的module模块,模块中封装了可以重复使用的功能函数。当创建了自己的 lib 库或者要使用第三方的库的时候(这些库就是一些事先写好的crate)需要将这些库中的module 模块引用到当前的环境中。Rust提供了以下几种引用方式:一、使用 extern crate在使用这些Module的文件中,通过
2016-03-18 15:12:12 18547
原创 Rust 中包访问策略和module开发策略
一、创建新项目$cargo new my_library 当前路径下包含 Cargo.toml 和 src 目录; src 目录下包含一个 lib.rs 文件。二、不使用module的情况1、修改lib代码$vi src/lib.rs修改代码如下:pub fn public_function() { println!(" my library's `public_function()` c
2016-03-17 21:54:34 8862 2
原创 Rust 中项目构建管理工具 Cargo简介
cargo是Rust内置的项目管理工具。用于Rust 项目的创建、编译、运行,同时对项目的依赖进行管理,自动判断使用的第三方依赖库,进行下载和版本升级。一、查看 cargo 版本安装Rust之后,可以使用cargo --version查看cargo的版本信息。$ cargo --versioncargo 0.8.0-nightly (28a0cbb 2016-01-17)二、创建新项目1、使用
2016-03-17 18:32:49 6238
原创 Rust 功能函数的关系、包和模块简介
Rust 功能函数的关系、包和模块简介一、功能函数之间的关系前面看到,一个文件中可以定义多个 function 功能函数,这些功能函数可以被相互使用。程序的入口是main()。在一个文件中,各个功能函数的定义和使用不受功能函数定义的顺序约束。也就是说,不需要像 C 语言一样,在使用一个函数而还没有定义函数之前要有一个声明语句;而像 java 一样,只要声明的功能函数在一个文件内,可以忽略功能函数在文
2016-03-17 13:52:43 5939
原创 Rust 的条件语句、表达式与语句和功能函数的返回值
Rust 的条件语句、表达式与语句和功能函数的返回值一、标准语句1、if 基本语句let x = 5;if x == 5 { println!("x is five!");}if 后面 x ==5 是一个表达式 expression 。2、if … else语句let x = 5;if x == 5 { println!("x is five!");} else { pr
2016-03-16 22:01:08 4838
原创 Rust的数据类型和功能函数的返回值
Rust的数据类型包括以下几个分类一、布尔类型Rust 用bool 表示布尔类型,值为 true 或者 false,用于if 等条件判断语句。 let x = true;let y: bool = false; 二、字符类型char 是一个单字符Unicode 标量值。通常使用‘ ’ 包围起来,在Rust中,char 占4个字节,而一些其他语言只占一个字节。 三、数值类型数
2016-03-15 16:57:24 8109
原创 Rust 的功能函数
一、功能函数Rust 可以包括一个或者多个功能函数。Rust 必须包含一个 main 功能函数,main 功能函数是 Rust 语言执行的入口。二、基本函数的定义功能函数的声明使用 fn , fn 后面跟随功能函数的名称,名称后面带 () 括号 。括号后面用 { } 大括号作为功能函数的函数体。没有输入参数和返回值的 main功能函数定义如下: fn main() {} 没有输入和返回值的
2016-03-14 20:31:28 3973
原创 Rust 中的变量和赋值
一、基本赋值语句先看一段代码 fn main() { let x = 5;} 这是个赋值语句。赋值语句由 let 开始。二、变量类型Rust 默认的类型是 32位 有符号整形所以,上面语句等同于 fn main() { let x: i32 = 5;} x后面跟:冒号,冒号后面的 i ( signed integer)表示有符号整形,32表示是32位的整形。除了i32
2016-03-13 22:37:38 4834
原创 Rust 中的宏
前面说过println! 是一个宏,宏和功能函数很像,只不过在函数名称后面有一个叹号!来写个宏看看:$mkdir macro_test$cd macro_test$vi main.rs macro_rules! say_hello{ ()=>( println!("Hello"); )}fn main(){ say_hello!()} macro_rul
2016-03-13 21:36:54 5413
原创 为AppDelegate分层的面向服务架构的 SOAComponentAppDelegate
名称解释一下:1、SOA是面向服务的架构,所有的第三方功能都被分别封装成服务。2、Component 表示这个类是用于引用的,不能用于继承。是对上一篇《category 分离 AppDelegate代码》的改进。一、首先创建服务类,服务类是对第三方服务的封装。第三方服务包括推送、支付、统计等1、服务举例 BaiduPushService 头文件新创建的服务类需要添加 UIApplicationD
2016-03-12 13:08:14 4259 8
原创 使用category 为 AppDelegate 的代码分层
category是一种为现有的类添加新方法的方式。利用Objective-C的动态运行时分配机制,Category提供了一种比继承(inheritance)更为简洁的方法来对class进行扩展,无需创建对象类的子类就能为现有的类添加新方法,可以为任何已经存在的class添加方法。AppDelegate 是iOS app启动的入口,经常需要添加各类的第三方应用,比如:定位服务、统计服务、消息推送服务
2016-03-12 08:43:00 8000 3
原创 Rust 格式输出
格式输出由一系列定义在 std::fmt 中的宏提供。包括:format! : 输出格式化的字符串。print! : 输出格式化的字符串到控制台(终端)println!: 增加一个换行,输出格式化的字符串到控制台(终端) println!("Guess the number!"); 输出:Guess the number! println!("{} days", 31); 输出:31 d
2016-03-11 15:24:23 3614
原创 Rust的注释
Rust 包括两类,共四种形式的注释。第一类是常规注释,这类注释在编译的时候被忽略掉第一种是行注释,使用双斜线 // // 这是一行注释,一直到行尾第二种是 块注释,使用 /* *//* 这是 一个 块注释*/第二类是文档注释,用于通过工具生成HTML API文档第一种是行注释,用三个斜线 ////// 这是一个用于生成文档的行注释第二种是块注释,用 //! 两个斜线
2016-03-11 14:27:25 4091
原创 Rust hello world 语法讲解
Rust的hello world代码如下:fn main() { println!("Hello, world!");}1、fn main()fn main(){ } 这句是在 rust 中定义一个功能函数,main 和C语言、java语言里面的main一样,是执行 rust 程序的入口。这里定义的 main 没有输入参数,也没有返回值。功能函数的函数体使用大括号 { } 2、pr
2016-03-10 18:24:56 2718
原创 Rust 的安装和使用举例
一、环境二、安装$curl -sSf https://static.rust-lang.org/rustup.sh | sh Welcome to Rust.This script will download the Rust compiler and its package manager, Cargo, andinstall them to /usr/local. You may in
2016-03-09 22:34:54 7071
原创 Launchctl - mac下的运行管理器
前面的文章提到了 launchctl,我就根据这个线索整理一下。launchctl 是 launchd的控制台(也就是人机交互的终端)用于装载进程、卸载进程并控制launchd。launchctl 也就是launchd的封面,这么说是为了避免让人感到意外,说launchctl怎么跑到launchd上了。launchd时mac os最核心的系统组件之一。Mac OS 系统启动最先做的事就是运行lau
2016-03-06 11:55:38 6041
原创 brew - 可以简单的获取数千种开源工具和函数库的包管理器
一、简介brew是一个使用ruby语言、由非营利组织开发的包管理工具。Homebrew程序提供的brew,严格来讲不是一个OS X的原生命令,但任何一个OS X的专业用户都不会错过它。“OS X缺少的包管理器”这个评价是恰如其分的。如果你曾经在Linux上使用过apt-get,你就会发现Homebrew基本上是一样的。使用brew可以简单的获取数千种开源工具和函数库。例如:brew install
2016-03-06 11:12:08 2142
原创 编译samba遇到need autoconf 2.53 or later to build samba from GIT
在使用Objective-C wrapper for sambaclient的时候,rake 出现编译错误。操作步骤:1、下载2、解压kxsmb3、进入kxsmb目录4、执行 rake错误提示包括 : need autoconf 2.53 or later to build samba from GIT ...解决方法:curl -OL http://ftpmirror.gnu.org/autoc
2016-03-06 09:56:15 2506
转载 Mac 10.10 yosemite 安装samba替代系统samba组件
一、工具 brew1、brew 介绍brew 又叫Homebrew,是Mac OSX上的软件包管理工具,能在Mac中方便的安装软件或者卸载软件, 只需要一个命令, 非常方便brew类似ubuntu系统下的apt-get的功能。brew 的官方网站: http://brew.sh/ 2、安装brew打开终端,执行下面语句:ruby -e "$(curl -fsSL https://raw.gith
2016-03-05 23:16:38 6212 1
原创 Android 系统提供的主题
android.R.style 列举了系统提供的样式主题。在 xml 文件中,作为属性值使用时,需要将主题名称中的 "_"(短横)改为 .(点)。 Theme The default theme for apps on API level 10 and lower. Theme_Black Variant on Theme that ensures the background
2016-03-02 17:29:07 4305
lame-ios-build.sh
2016-12-13
lame-3.99.5.tar.gz 最新版
2016-12-13
jedis 2.7.2 jar
2015-07-19
restlet实现最简单的restful webservice
2013-04-14
XPP3解析XML举例
2012-06-28
JCS 实践
2008-04-10
JCS简介
2008-04-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人