• *经问题,选什么 ide at 2020年01月04日

    netbeans 6 里面把被输入法占用的 Ctrl+Space 换成其他快捷键,然后按这组快捷键就能弹出代码完成菜单了。羞愧

  • 求内存盘访问文件的扩展 at 2020年01月01日

    在数据库连接里面 select * ,会把所有数据库的数据读入 ruby,其中每个数据都是单独存放的。

    如果只是读入 sqlite3 的二进制数据库文件,则这个 “文件” 是连续的。

    反正我觉得 ruby 还是挺占内存的……

  • 求内存盘访问文件的扩展 at 2019年12月29日

    哦哦,其实稍微学了学 pgsql,要换过去也不是问题,纯个人单机的数据。那我就换 pg 了。

  • 现在有点明白了, map 抛出的 Enumerator 也只是对元素的引用,所以在 map 里面修改 Enumerator 的每个元素会影响到 map 以外对应的实际的元素。

  • Ruby 2.7.0 Released at 2019年12月26日

    作为一个业余学写脚本的学生,一开始因为 ruby 的.each 遍历和 do...end 的奇怪的语法而排斥它。后来在 c 语言、java 和 perl5 里面踩了一些坑,决定试试 ruby,从此少了一些整体上的烦恼。虽然我自己写的脚本性能不一定能优化得好,但是修改起来还是容易多了。

    现在一般是循规蹈矩地写命令(按 c# 的编程习惯),实在不得已要用一些灵活的动态方法时,都在 irb 里面测试完再用。

  • ruby 做强类型 DSL 的问题 at 2019年12月22日

    你把要被检查的 ruby 代码发出来一下看看,可以吗?

    我以前也是这样想的。后来还是觉得 “约定大于配置” 这句话比较实际。

    你也可以搜索 ruby sorbet

  • 我觉得最难改变的习惯是 array.map.select.min 这种点操作一把梭吧。

  • 问题还像是没解决完。linux 虚拟机 ruby 2.6.5 ,旧方法与新方法消耗的时间的比例约为 1.47:1.52,这个差距应该还是能说明问题的。……

  • 问题已解决。在现在的代码的新方法里,修改

    tf != ''
    

    为等效代码:

    tf.size > 0
    

    这样就能得到和旧方法差不多的时间了。再排除掉以下代码的影响:

    (旧方法实现以下代码的效果是在另外一个函数进行的,所以在这里的对比应该排除)

    if (text[0] == '+' || text[0] == '-')
      text = '0' << text
    end
    

    这样,新方法和旧方法在 ruby 2.5.7 上相差的时间的平均值不足 0.02s,就认为性能差不多了。

    得过且过吧。

  • 按你的说法修改了一下,还是比旧的方法慢,这下我又摸不着头脑了。

    不过有个奇怪现象,在 linux 虚拟机 ruby2.6.5 环境 两者相差的时间 比 win7 ruby2.5.7 两者相差的时间 多不止一点。

    还有就是

    str[id..]
    

    这个用法好像只有 ruby2.6 版本才能用,我在 2.5.7 和菜鸟在线编辑器的 2.4 都用不了这个方法。