支持。我以前学 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 实现。
性能估计没有差别。一旦执行了外部方法,内部方法就会被定义在类中,整个类均可见,不会因为外部方法执行完毕而 undef 内部方法。跟直接定义在类中没有差别,反而显得奇怪。你还不如内部用 lambda
[]=
是另一个方法,a[3]='x'是 a.[]=(3,'x') 的语法糖,而不是先调用[]
后再用等号赋值。
只要 a 和 b 是不同的对象,你这个需求就很难实现。想知道什么情况下需要实现这样的效果? Array#slice和Array#[]没区别,Array.instance_method(:[])==Array.instance_method(:slice) 返回 true。其实看文档就知道了
同楼上。不过 codewar 上有个怪风气,就是偏爱简短的代码,而非清晰的代码。有时候要很熟悉 API 才能看懂靠前的解法,不过正好用来熟悉 API
都是比较靠谱实际的问题,没有整算法之类高大上的东西。
不过楼主发视频不给面试者名字、视频打个马赛克么
搞调试还要在 production 下玩。。。如果你没有源码部署经验,会踩很多坑 预编译 RAILS_ENV=production bin/rails assets:precompile 之后再配置 nginx,具体配置内容谷歌