#3 楼 @ChanceDoor 是啊,父进程说“我的子进程说了 OK”,子进程说”我的父进程说了 Get a job!“
If a block is given with a cmd of “-”, the block will be run in two separate processes: once in the parent, and once in a child. The parent process will be passed the pipe object as a parameter to the block, the child version of the block will be passed nil, and the child’s standard in and standard out will be connected to the parent through the pipe. Not available on all platforms.
#1 楼 @ChanceDoor 没有写反啊
回 LZ,就是子进程的 STDIN 和 STDOUT 连接到了父进程的 pipe 上。
好文,必须加精啊
不明觉厉 顶
info 明显应该是个数组啊,怎么会是 hash
这还不常用。。。最常用的就这些了。
初中老师会让我们算,a < 3 或 a > 5 的那些整数。那么 a 一定是在这 2 个区间了,所以,if 中的那个,一定是两个区间中的一个。
这个因为所以根本没有关系,谁说 if 里就非得是个区间了。
按照这么说,类似这样的代码都不能写了
if user.vip? || user.have_more_than_five_orders?
xxx
end
在一个由条件式或循环所构成的上下文中,一个 flip-flop 由两个通过..操作符相连的布尔表达式构成。除非其左侧表达式为 true,否则一个 flip-flop 表达式就是 false,而且在左侧表达式为 true 之前,它的值都会是 false。一旦该表达式为 true,那么它就会“flips”到一个持久的 true 状态。它会保持该状态,而且对其后续的求值也返回 true,直到其右侧表达式成为 true 为止。如果其右侧表达式为 true 了,那么该 flip-flop 就会“flops”回一个持久的 false 状态,对其后续的求值也返回 false,直到其左侧表达式再次成为 true 为止。
ex1:
11, false..false, pass
12, true..true, collect
13, false..false, pass
14, false..false, pass
15, false..false, pass
16, true..false, collect
17, true..false, collect
18, true..true, collect
19, false..false, pass
20, true..false, collect
..和...的区别是,..是当左侧为 true 时,同时根据右侧来决定 flip-flop 的状态是否为 false,...是下次再根据右侧值决定 flip-flop 的状态
ex2:
11, false...false, pass
12, true...true, collect (虽然右边是true,但是这次被忽略)
13, false...false, collect (这里虽然左右都是false,但是整个flip-flop是true)
14, false...false, collect
15, false...true, collect (右侧是true了,整个flip-flop是false了)
16, true...false, collect (左侧又是true了)
17, false...false, collect
18, false...true, collect (右侧是true了,整个flip-flop是false了)
19, false...false, pass
20, true...false, collect
关键是知道整个 flip-flop 表达式有内部状态,还有何时根据左右表达式改变内部状态
貌似是这么解释的,实际上从来没用过这玩意儿。
这是 flip-flop 啊
c-family 也马马虎虎,打开 ruby 的源码,用起来还是不行。
颈部以上切除手术(误
可以为这些(类型,大小)做个常量表,对应一个整数,数据库存数字,加索引。
可以用 http://bogomips.org/socket_dontwait/ ,这个 gem 用 recv 实现了一遍。
User.where("usertype != 'student'")
而且 LocalStorage 会储存很多空的信息或者是个✓
先支持了 maybe。。。
instance_eval 内部 c 实现是调用了 specific_eval,specific_eval 里判断如果参数是 block,就调用yield_under(klass, self, Qundef);,会改变 block 的 self,如果既不用 instance_eval/exec,也不用 define_method 来用 UnbindMethod 去 bind 对象,貌似没办法的样子。
呼唤大神 @luikore
这个效率很差啊,每次都要重新 sort,Array 还有很多口子没处理 concat 啊,delete_if 啊等等。先 find 遍历,再用 index 效率也很低,不在乎重复元素直接用 SortedSet 还好点。
我也不是很喜欢 Slim/Haml 这种缩进方式的。相比较于 Python 和 Coffee 来说,还是‘代码’,通过提炼重构可以控制单个方法的长度,但是页面模板就不是那么好弄了,你不可能每个模板都控制在几行以内,单个模板十几行,二十几那算是好的,这个情况下 Slim/Haml 这种读起来非常痛苦。
支持 @vincent
把 agent 的代码丢到 lib 下面,rake 任务和业务代码里去调用。
用 Arel 写 exists 子查询代替 in