最近重温了一下 awk, sed, tr 等命令,然后发现leetcode中还有几道专门关于shell的题目shell in leetcode, 于是就也做了一下。下面是几道题目的解决方案。
在《Effective C++》里提到对内置(C-like)类型在函数传参时pass by value比pass by reference更高效,当用OO的c++自定义类型(存在构造/析构等)pass by reference to const 更好,STL里的迭代器和函数对象是用C指针实现的,因此pass by value更好。至于为什么,下面的代码验证了下。
注意C中的struct和C++中的struct是不一样的,c中的struct比较原生,仅仅是将一些属性封装起来构成一个整体,没有OO的相关特性。而c++中的struct是对c中的struct进行扩展(兼容c中的struct),具备OO的特性, 其实c++中的class能干的事情struct几乎都能干, 什么继承、多态等都OK。直接看下面代码,不同编译器对结果可能不一样:
这应该属于Named Return Value Optimization(NRVO)或者Return Value Optimization(RVO)返回值优化的范畴。
RVO就是这样的:
前面写python的AOP解决方案时提到了decorator,这篇文章就详细的来整理下python的装饰器——decorator。
之前开发用惯了eclipse(从Java,JS,android到php,python等),现在准备接触下R,还是想用eclipse,不想再去花时间熟悉另外的IDE。
前面说已经开是学习python了,然后随便看了下语法,就看到了OO了。结果发现这个__init__()和__new__()方法才有些神奇。引用官方API的解释
说学python已经好久了,这两天终于看了下。最开始还是别人推荐的简明python教程:chm版本下载,在线版本,这个版本是2.x版本滴了,机子上装了3.2的,难怪自己开始想打印hello world都不行。因为教程里说的是,直接print ‘hello world’,结果提示语法错误。后来才知道,print在3.x版本里面已经是一个函数,应该用print(‘hello world!’)这样才可以,我就说怎么连hello world都不行。该教程的英文版本滴可以参考这里。
昨天因为收到告警信息,原因是自动化测试用例用例的脚本有问题。其中一个请求过去设置了If-None-Match的值为 700390322,然后response返回304.测试人员肯定是抓包然后有If-None-Match这个字段,就每次发了这个值,但是其实,服务器那边根据这个值判断是否是新请求新的内容,如果服务器端内容没有变的话,直接返回304,让浏览器端直接取缓存就可以了。根据这个扩展了下相关知识。
最近常用到VI,苦于有些命令还得去查,这里网上找了份,不错。记录下来。收藏了。