显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

进击の架构师

 
 
 
 
 
 

北京市 海淀区 天蝎座

 发消息  写留言

 
博客等级加载中...
今日访问加载中...
总访问量加载中...
最后登录加载中...
 
 
 
 
 

我的开源项目

 
 
模块内容加载中...
 
 
 
 
 

可爱的小鼠

 
 
模块内容加载中...
 
 
 
 
 

日志分类

 
 
日志分类列表加载中...
 
 
 
 
 

摄影组图

 
 
数据加载中...
 
 
 
 
 
 

小铺子

 
 
模块内容加载中...
 
 
 
 
 
 
 

[置顶] [C/C++]C++管道数据流(Stream)的实现

2017-2-5 9:49:46 阅读164 评论0 52017/02 Feb5

仿照 Java8 Stream 实现的C++版本,使用时只需要包含一个头文件。

#include "stream.h" using namespace cpp::stream;

同时提供了 -> 和 >> 两种类型的操作符调用:

ST3 arr[20] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 }; int count1 = make_stream(arr, __crt_countof(arr)) ->map([](const ST3& st)->ST2 { return st.st2; })->map([](const ST2& st)->ST1 { return st.st1; })->map([](const ST1& st)->ST0 { return st.st0; })->map([](const ST0& st)->int { return st.i; })->filter([](const int& i)->bool { return i > 6; })->filter([](const int& i)->bool { return

作者  | 2017-2-5 9:49:46 | 阅读(164) |评论(0) | 阅读全文>>

[Groovy] Groovy内插字符串的Lazy模式

2017-10-19 14:13:49 阅读2 评论0 192017/10 Oct19

第一种模式,没有参数,如下:

def person = "jim" def str2 = "hello ${-> person}" println(str0)

第二种模式,一个参数,如下:

def person = "jim" def str3 = "hello ${out -> out.append(person)}" println(str3)通过查看源码可知参数out的类型是java.io.Writer,如下:public Writer writeTo(Writer out) throws IOException {

String[] s = getStrings();

int numberOfValues = values.length;

for (int i = 0, size = s.length; i < size; i++) {

out.write(s[i]);

if (i < numberOfValues) {

final Object value = values[i];

if (value instanceof Closure) {

final Closure c = (Closure) value;

if (c.getMaximumNumberOfParameters() == 0) {

作者  | 2017-10-19 14:13:49 | 阅读(2) |评论(0) | 阅读全文>>

[Java/Web]使用Lambda表达式简化抽象工厂模式

2017-10-9 18:07:22 阅读16 评论0 92017/10 Oct9

首先简单讲一下场景,我想实现一堆的操作符,它们都继承自 Operator<T> 接口,其定义如下:

public interface Operator<T> {

/**

* 执行运算符的操作

*

* @param left 操作符的左值,应该是目标值。

* @param right 操作符的右值,应该是用户值。

* @return 操作符执行成功返回 true,否则返回 false。

*/

boolean invoke(T left, T right);

}

并且已经实现了几个,比如数值的“等于”操作符,字符串的“正则匹配”操作符,其实现分别如下:

public class NumberEqualTo<T extends Comparable<T>> implements Operator<T> {

@Override

public boolean invoke(T left, T right) {

return left.compareTo(right) == 0;

}

}

public class StringRegexMatch implements Operator<String> {

作者  | 2017-10-9 18:07:22 | 阅读(16) |评论(0) | 阅读全文>>

[经验之谈]Python.h: 没有那个文件或目录

2017-9-19 13:58:10 阅读6 评论0 192017/09 Sept19

解决方案:安装Python的开发包。

sudo apt-get install python-dev

或者

sudo apt-get install python3-dev

作者  | 2017-9-19 13:58:10 | 阅读(6) |评论(0) | 阅读全文>>

[SpringCloud] Spring Cloud 预定义的几个变量

2017-9-18 14:30:36 阅读8 评论0 182017/09 Sept18

1. org.springframework.cloud.client.HostInfoEnvironmentPostProcessor 类添加了两个变量:

    spring.cloud.client.hostname 和 spring.cloud.client.ipAddress,

默认是系统中第一个不为loopback的网落地址名称和IP。这两个变量可以用于 Eureka Instance ID 的组成。

可以通过 org.springframework.cloud.commons.util.InetUtilsProperties 类进行改写。

作者  | 2017-9-18 14:30:36 | 阅读(8) |评论(0) | 阅读全文>>

[Java/Web]Thymeleaf中使用正则表达式

2017-9-4 15:30:59 阅读15 评论0 42017/09 Sept4

第一次使用Thymeleaf,需要在JS中使用正则表达式,如下:

function getRedirectUrl() {

var reg = /redirect=([^&]*)/;

var r = window.location.search.substr(1).match(reg);

if (r != null) {

return decodeURIComponent(r[1]);

}

return null;

}

我已经在普通的HTML文件中测试过该函数,可以使用,但是放到Thymeleaf中会报错:

在实体引用中, 实体名称必须紧跟在 '&' 后面。

好吧,第一反应,&字符需要转义,那就把上述函数中的&符号直接改掉吧。改完傻眼了,不对,比如说我想匹配

http://sample.ucredit.com:8080/login?redirect=http%3A%2F%2Fsample.ucredit.com%3A8080%2Fuser%2Fmore%3Fa%3D%25E5%25A5%25BD%26b%3D90

中的redirect参数,结果只能取到htt。也就是说JS并不认为&被转义了,所以p字符也被判断为非匹配了。

最终我还是找到了解决方法:

用//<![CDATA[和//]]>将JS代码包裹起来。

作者  | 2017-9-4 15:30:59 | 阅读(15) |评论(0) | 阅读全文>>

[Linux]命令行将输出内容以表格形式显示

2017-8-24 10:25:16 阅读10 评论0 242017/08 Aug24

mount // 未格式化

mount | column –t // 格式化

作者  | 2017-8-24 10:25:16 | 阅读(10) |评论(0) | 阅读全文>>

查看所有日志>>

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017

注册 登录  
 加关注