ruby 中估计没有能让第二种代码运行的办法,有这种办法俺也不用。
在 python 和 js 中,第二种代码是能正常运行。然而这种特性,估计也只有面试能用到...
2.7 后的写法:arr.map{ _1[:a] },比你想要的 arr.map(&:[:a]) 还要简洁一些
不懂就问:老哥 啥是“Value integrated systems”
给楼主另一个参考,我的环境在 wsl1 里,ruby2.7,没啥 jit 之类的,跑了 8s;python 3.9,跑了 28s,跑 python 的时候慢的我一度怀疑写的代码是不是死循环了
去掉数据库的 io 时间对比应该会明显。以前在 mini(i5)上跑过测试,ruby2.7 rails6,只响应固定的 json,单核能跑到 1000 左右的 rps。不过把 rails 放 docker 容器里就只有 600 左右的 rps,而且容器内 puma 进程 cpu 怎么也跑不到 100%,也不知道是啥原因
功德无量!
支持。我以前学 ruby 就用过这个 gem.楼主顺便吧 python-koans 也注释了呗
为啥需要一个 rails 选项。。。一个项目就是一个目录,直接打开有什么问题哦?
俺试试勒
s = "idP111~nm~~nm xxx ~~~~~~~~ ~~id~~br~~~qt10"
KEY = %w(id nm qt pr)
groups = s.chars.chunk_while do |before, after|
(before == '~' && after == '~') or (before != '~' && after != '~')
end.map(&:join)
p groups #=》["idP111", "~", "nm", "~~", "nm xxx ", "~~~~~~~~", " ", "~~", "id", "~~", "br", "~~~", "qt10"]
kv = groups.slice_after { |e| e[0] == '~' and e.size.odd? }.map do |arr|
arr.map do |str|
if str[0] == '~'
'~' * (str.size/2)
else
str
end
end.join
end
p kv #=》["idP111", "nm~nm xxx ~~~~ ~id~br~", "qt10"]
rst = kv.each_with_object({}) do |e, obj|
if key = KEY.find { |k| key = e.match?(/^(#{k})/) }
obj[key.to_sym] = e[key.size..-1]
else
raise 'Wrong code'
end
end
p rst #=》{:id=>"P111", :nm=>"~nm xxx ~~~~ ~id~br~", :qt=>"10"}
高山仰止...
ruby 不支持 overload。
你举得例子,简单的情况下能写出这样。不过复杂的情况需要具体分析。
def handle(any_type_data)
Array(any_type_data).each do |e|
do_someting
end
end
这是一个奇怪的需求。我怀疑你把问题想偏了。。。说出你的“原始需求”应该更有帮助
这里的 return 只是为了终结方法执行,返回具体什么值是次要的,所以两种没啥区别
试了下,第二种方式也会遇到减到 -1 的情况
没写过 view 层的测试。不过怀疑可能跟 turbolinks 有关。
貌似我以前也踩过这个坑...html_safe 用来标记字符串是安全的,不用转义......而不是把原字符串转换成安全字符串。
补充一下楼上,return 返回的上下文是方法或者 lambda(一种特殊的 Proc 对象)
1,2,3,4 用 IDE, 5,6 靠经验
Regexp.escape('\*?{}.') #=> \\\*\?\{\}\.
魔幻。
答主跌宕起伏的人生始终都有女朋友陪伴。。。
你是想用 super 调用超类的 delete?
但是超类是 Object,没有 delete 方法
终于有了扫盲贴!
换个路子试试,直接 update,然后抓 unique 异常,在异常处理中作 delete。性能估计取决于这样的异常多不多了
既然都用 ror 了,不如直接用 ror 的 api 模式
以前用 redis 实现了个 per-user-per-session 的简单 demo(session 也存 redis)。在 redis 中加了个 hash 存 user_id 到 session_id 的映射,用户每次登陆成功后通过 user_id 拿到 session_id(若没有拿到,说明是没有在其他地方登陆),再根据 session_id 去更新 session。用户退出登陆时同理。基本就跟 session 存数据库时一个套路。需要知道框架或库是如何计算 session_id
我很好奇你是怎么理解的我在一楼的回复,能让你这么怒火中烧,指责我“不懂就不要装懂少丢点人”。
我之前回答过你不少问题,看出你好像是用 ruby 做编程比赛,并且挺在意数据结构和性能,而且这个主题描述来看你想要的就是个指针概念,所以我觉得还不如用 C。
再说了,说 ruby 性能不如 C,怎么就成了“不懂装懂”了,顶多算个偏题。
题主咱俩得把这个问题沟通清楚,被人莫名其妙在公共场合指责一顿,是相当郁闷不爽的一件事,况且这个人几天前还对我其它的回答相当友好
非常在意性能不要用 ruby,用 C
你举的例子可以用 each_with_index 或者 enumerator 实现。