只显示主题贴

我之所以在这里“咬文嚼字”,是为了追求对语言的精确理解。 对于象ruby这种特性丰富的语言,没有象JavaScript那样有一个定义严谨的规范来作参考,只能靠“咬文嚼字”了。 说“离开ror,ruby啥都不是“这个严重不同意. 单独来看ruby本身就是一门非常优秀的脚本语言,就“陷阱”而言并不比C++多,语言的表达能力并不在Perl之下而可读性非常之高,唯一缺憾是速度较慢,但对于脚本语言来说这个问题并不显著。 我开始用ruby的时候,根本就不知道什么是rails.
  • 进入论坛 Ruby
lllyq 写道rubynroll 写道lllyq 写道你可以试试看新开irb,执行 if a then a else a = 2 end 这个效果跟新开irb,执行 a || a = 2 效果是一样的,ruby 版本是1.8.6 效果不一样, 至少在版本是1.8.6. 1.8.7上是不一样的, 后者会raise undefined error. 根据你的回复我估计你还是没去试,显然,无论在1.8.6, 1.8.7,后者都会raise undefined error. 前者你试过了么?试过后你就知道为什么我会回第一个帖了\ 我说的更清楚一点就是你测试下来两者行为不一样,那是因为你的测试方 ...
  • 进入论坛 Ruby
lllyq 写道你可以试试看新开irb,执行 if a then a else a = 2 end 这个效果跟新开irb,执行 a || a = 2 效果是一样的,ruby 版本是1.8.6 效果不一样, 至少在版本是1.8.6. 1.8.7上是不一样的, 后者会raise undefined error. lllyq 写道 非要用一个准确的展开式下面这个应该可以 if defined?(a) then (a || a = b) else a = nil end 这就是我所想要的讨论的,一个准确的展开式. 但是这个式子还是有问题, 应该是这样才对: if defined?(a) the ...
  • 进入论坛 Ruby
lllyq 写道讨论研究是相互的,你是不是太自信了,事实上你的每一行代码我从一开始都试过了才回贴的,希望看到这里的朋友也试试看,LZ不愿意尝试也没问题,你们自己试试看是怎样,否则可能会被这个标题误导 另外关于define的问题还有另一个解释,一般我们都在方法体用,就不存在define的问题,因为如果未定义会自动使用local变量 老实说不是我不愿意尝试,而是我不知道如何根据你的说法来尝试. 其实对于这个问题我自己也是一肚子疑惑, 所以才会发文, 看看大家是否还有更好的解释? Quake Wang就纠正了我的结论. 但从你的回复中,我实在不知道如何去根据你的"说法"转换成展开式, 恕我 ...
  • 进入论坛 Ruby
拜托, 我要的是"展开式", 不是"说法". 还是那句话: 用点例子好不好?
  • 进入论坛 Ruby
lllyq 写道这个h[:x]行为有什么特别么?跟预期的行为一致啊 h[:x] ||= 2 并没有对h[:x]赋值,相当于h[:x] || h[:x] = 2,而h[:x] = nil是有一个赋值动作 我举的那个例子就是为了反驳 caryl 写道 同意楼上,感觉应该相当于 a = nil a || a = b caryl说的"楼上"就是 lllyq 写道a || a = b 就是 a || a = b,本来就没考虑defined?的问题,跟 if a then a else a = b end 一样的,如果你执行下来不一样那估计是你连续执行的问题,前一句相当于做了define ...
  • 进入论坛 Ruby
lllyq写的我没看明白....拜托用点例子好不好? caryl 写道同意楼上,感觉应该相当于 a = nil a || a = b 你在irb里面试一下就知道了,两者并不等价: irb(main):014:0> h = Hash.new(1) => {} irb(main):015:0> h[:x] ||= 2 => 1 irb(main):016:0> h => {} irb(main):017:0> h[:x] = nil => nil irb(main):018:0> h[:x] || h[:x] = 2 => 2 irb(main):019:0> h ...
  • 进入论坛 Ruby
前一段时间,我在这里http://rubynroll.javaeye.com/blog/192547展示了一个空格带来的'陷阱', 今天又见到另一个'陷阱'(http://dablog.rubypal.com/2008/3/25/a-short-circuit-edge-case by David). 之所以为陷阱加引号, 是因为大部分情况下我们都没有机会掉进去 :) 大多数Ruby教科书在解释 "a ||= b" 这个复合操作时,都说她等效于: "a = a || b", 实际上真的如此么? 让我们在irb里面来看看: h = Hash.new(1) # 生成一个新的Hash,缺省 ...
  • 进入论坛 Ruby
直接用git吧如果不幸被PMO VSS了,也不是没法活了,你可以VSS+GIT, 照样可以多人同时修改同一个文件,而且还可以分布式!详情请见"SVN+GIT=鱼与熊掌兼得":http://rubynroll.javaeye.com/admin/blogs/203133
动态规划可以解决T1给出的公式么?这个可是挑战极限的好例子啊,呵呵~f(0,n)=n+1, f(m,0)=f(m-1,1), f(m,n)=f(m-1,f(m,n-1))
rubynroll
搜索本博客
存档
最新评论