• 👍

  • \xEF\xBF\xBD 乱码问题求救 at 2016年01月15日

    #10 楼 @hexawing 文件是 GB2312 编码的。那么问题应该是出在上传的时候,文件写坏了。

  • \xEF\xBF\xBD 乱码问题求救 at 2016年01月15日

    #6 楼 @hexawing 文件已经坏了,里面存的就是乱码。用啥打开都一样。

    按照你的想法,第一行: {客户编码}[分隔符]"~~"

    你的文件第一行: \x7B\xEF\xBF\xBD\xCD\xBB\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\x7D\x5B\xEF\xBF\xBD\xD6\xB8\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\x5D\x22\x7E\x7E\x22

    GB2312 编码的第一行: \x7B\xBF\xCD\xBB\xA7\xB1\xE0\xC2\xEB\x7D\x5B\xB7\xD6\xB8\xF4\xB7\xFB\x5D\x22\x7E\x7E\x22

    UTF-8 编码的第一行: \x7B\xE5\xAE\xA2\xE6\x88\xB7\xE7\xBC\x96\xE7\xA0\x81\x7D\x5B\xE5\x88\x86\xE9\x9A\x94\xE7\xAC\xA6\x5D\x22\x7E\x7E\x22

  • \xEF\xBF\xBD 乱码问题求救 at 2016年01月15日

    #4 楼 @hexawing 公司访问不了,可以发个邮件到 [email protected]

  • \xEF\xBF\xBD 乱码问题求救 at 2016年01月15日

    能传个文件吗

  • #10 楼 @redemption 看起来 Active Record 并不会在 SQL 里面添加 foreign key constraint。 belongs_to 在实现时应该首先去查找当前 table 是否有对应的 column。 foreign_key: 这个 option 应该是用来指定 column name 的。

  • belongs_to 的主要作用是给 Model 加一些方法。

    class Order < ActiveRecord::Base
      belongs_to :customer
    end
    

    比如这个,会给 Order 加上

    Order#customer
    Order#build_customer
    Order#create_customer
    

    等方法。

    index 跟这个应该没有关系。

    你可以做一下这个实验,然后把结果发上来:

    1. 添加 belongs_to :nowhere # 看看 schema 里没有 nowhere_id 会发生啥
    2. 添加 nowhere_id 到 schema,不加 index,不建立 nowhere Model,看看 belongs_to 会不会添加方法
    3. 添加 index
    4. 去掉 index,添加 nowhere Model
    5. 加上 index
  • 已发简历,盼回复。

  • 20000 万 为啥不直接写两亿

  • What you think your code is:

    print (while gets)
    

    Actually, your code is the same as this:

    while gets
      print
    end
    

    Try this code, it should print nil.

    a = (print while gets)
    p a
    
  • 按照 [condition, exec] 的格式存到数据库。

    调用的时候用 foo 去查找数据库里对应的 condition 那条记录。 读出来 eval exec

    或者直接把所有的记录读出来作为一个数组。 一样的用 foo 去找数组里对应的项,然后 eval

    第一种方法受数据库查询的限制,一般讲数据库不支持那么多匹配的方法。 第二种方法需要更多内存,并且需要 write-through cache,否则速度要慢一些。

  • Ruby 菜鸟代码拍砖 at 2015年10月30日
    1. 代码基本没有格式,每行也比较长,读起来很费劲。
    2. 函数的参数应该是 file_name 之类的,不是 file。
    3. original_string 的名字不对,既然要对它进行修改,就不要取这个名字。
    4. File.exists? 已经标记为 deprecate,换用 File.exist
    5. 已经用了 IO.read,能不能考虑用一下 IO.write,这样风格比较统一。
    6. 注释太啰嗦,无用,全都去掉。(正则表达式可以考虑写一下注释)
    7. 对 string 的修改可以单独写一个函数,比如什么 uniq(str) 之类的,然后可以写 UT。UT case 里面需要把 ABCDABCDABCD 这些特殊情况的处理结果列出来。
    8. 虽然你想写一个通用的函数,然而输入输出都已经限定了。如果非要写,那么对于各种 error 的处理要单独体现,比如非 GBK 编码的文件。
    9. 让老板把 Code Review 搞好,比技能鉴定管用。
  • #15 楼 @arth Then just return first - 1.

    def bsearch nums, val
      first = 0
      last = nums.size
      while first < last
        middle = (first + last) / 2
        if nums[middle] < val
          first = middle + 1
        else
          last = middle
        end
      end
      first - 1
    end
    
  • #13 楼 @arth Why? Because the array may contains -1? You could raise that question during your interview.

  • He asks you to return the value, not the index. You should return a[m], not m.

    This is my version:

    def bsearch nums, val
      first = 0
      last = nums.size
      while first < last
        middle = (first + last) / 2
        if nums[middle] < val
          first = middle + 1
        else
          last = middle
        end
      end
      return -1 if first == 0
      nums[first - 1]
    end