Ruby China
  • Topics
  • 招聘
  • Wiki
  • 酷站
  • Gems
  • Sign Up
  • Sign In
岑永洪@e袋洗
@nickcen
Member
NO. 6388 / 2013-03-27

e袋洗
北京
5 Topics / 70 Replies
1 Followers
0 Following
0 Favorites
GitHub Public Repos
  • qcloudapi 3

    qcloudapi是为了让Ruby开发者能够在自己的代码里更快捷方便的使用腾讯云的API而开发的SDK工具包。

  • leetcode 2

  • itjuzi_report 2

    基于IT桔子的数据,生成行业的分析报告

  • ord 0

    👁‍🗨 Rare and exotic sats

  • btc_lite_wallet 0

    manipulate BTC assets with IC canister

  • processor 0

    processor prototype

  • blockly 0

    The web-based visual programming editor.

  • china_regions 0

    基于国家统计局数据获取省,市,区信息

  • rusty-sando 0

    Implementation of a competitive v2/v3 multi-meat MEV sandwich bot written using Rust and Huff.

  • solidity_course 0

    A solidity training course for beginner. Includes Ethereum, Solidity and Truffle.

More on GitHub
  • Overview
  • Topics
  • Replies
  • Favorites
  • Following
  • Followers
  • 有要一起参加 SegmentFault 黑客马拉松北京站的吗?求组队,谢谢! at June 23, 2014

    围观。

  • 元编程里的一句话 at June 20, 2014

    @ane

    ruby 这种调用是不能这样调用的。

    java 是可以的。之前代码只是示意。可编译和 run 的代码是这样的。

    package test;
    
    public class Main {
        public static void main(String[] args){
            new A("a").m1(new A("b"));
        }
    }
    
    -------------------
    package test;
    
    public class A {
        private String name;
    
        public A(String name) {
            this.name = name;
        }
    
        public void m1(A b){
            m2(b);
        }
    
        private void m2(A b) {
            System.out.println("inside "+name);
            if (b != null) {
                b.m2(null);
            }
        }
    }
    
    
  • 元编程里的一句话 at June 20, 2014

    @neverlandxy_naix 你的代码不对啊,是在 a 的内部调用 b 的私有方法。直接这样调用私有方法,在哪个语言里面都不能够的。

    # encoding:utf-8
    
    class A
      def initialize(name)
       @name = name
      end
    
      def p(b)
        m_p(b)
      end
    
      private
      def m_p(b)
        puts "inside #{@name}"
        b.m_p(self)
      end
    end
    
    A.new("a").p(A.new("b"))
    
  • 好消息 Toad for Mac 免费 at June 20, 2014

    一直在用 Sequel Pro,免费。

  • 元编程里的一句话 at June 20, 2014

    @blacktulip 自己写一个 ruby 程序测试吧。

  • 元编程里的一句话 at June 20, 2014

    第一句话是对的,a,b 都是 A 的实例,那么在 a 的方法内部是可以调用 b 的私有方法的。这个写个 Java 程序验一下就知道了。

    Java 的方法,都是随着类加载的,都在栈,整个系统都只有一份。简单来说,每个类都有一个 method lookup table,用来查询某个方法的入口地址在哪。当 a,b 不是同一个类时,a 只能查询到 b 的公开方法列表,所以,没法 binding 到 b 的私有方法。如果 a,b 同一个类,那么他们其实共用一个 lookup table,所以,就能找到私有方法入口。

    这种调用私有方法跟多线程没有任何关系,对象的实例都是方法和变量分离的,变量可以简单理解为 C 里面的 Struct,通过一个指针引用。每次方法调用就是正常的进栈出栈。另外,java 虚拟机规范里面有介绍,当调用某个实例方法时,虚拟机会默认的把当前对象作为第一个参数压入栈,即如果调用 a.p_m(b),那么实际上是传了两个参数给方法 p_m,第一个参数是 a,也就是 p_m 方法内部的 this 引用,第二个参数是 b。所以,对于这样的代码。

    class A(){
      private String name;
      public A(String name){
        this.name = name;
      }
    
      public void m(A b){
        p_m(b);
      }
    
      private void p_m(A b){
       System.out.println("i am "+name);
        b.p_m(a);  
      }
    }
    
    new A("a").m(new A("b"));
    

    当调用 a.m 方法时,这是第一层栈;当调用 a.p_m 时,就是第二层的栈,这个栈内部的 this 是 a;当调用 b.p_m 时,就是第三层的栈,这个栈内部的 this 是 b。简单说,这就有点像递归,只是不断的压栈,然后让 CP 指回到方法入口,跟多线程没有任何关系。

  • 网页内容的放大缩小是怎么实现的,类似谷歌地图的滚轮缩放功能 at June 19, 2014

    就是记录一个 level 值,查询记录的时候带上这个 level 值而已。google 缩放的不是同一张图片本身。不同 level,google 返回的是不同的图片。

  • [北京][2014年6月21日] Open Workshop :Ruby 的单元测试 /Java 的单元测试 / 安全攻防 at June 19, 2014

    报名之后等通知?

  • [经验之谈] 转行做程序员的 8 个月 at June 16, 2014

    不错不错。

  • [已结束] 时隔一年,再求 Ruby 工作一份 at June 12, 2014

    北京职位的飘过。

  • Sidekiq 精通 36 分钟 at June 12, 2014

    跟 delayed_job 之类是什么关系,优缺点之类的了?

  • 批量数据该怎么处理才能减少耗时 (如何用 EventMachine 发送多 http 请求) at June 10, 2014

    @yutian 那就把确定路径所需要的字段取出来就好了,不要生成 ActiveRecord 记录,这样慢。

  • 批量数据该怎么处理才能减少耗时 (如何用 EventMachine 发送多 http 请求) at June 10, 2014

    如何判断 pdf 是否存在,是基于某个数据列存不存在?如果是,那就直接把这一列查出来就好了。不要用 ActiveRecord 生成对象。

  • 请教,多参考项的随机分组? at June 10, 2014

    我觉得这里的随机是希望越相似的人越不要在一个组。所以,直接用 k-means 算法的结果会跟这个随机的需求相反。

  • [成都][2014 年 6 月 20-22 日] Startup Weekend 成都第一个创业周末 at June 10, 2014

    @lyfi2003 thx

  • 批量数据该怎么处理才能减少耗时 (如何用 EventMachine 发送多 http 请求) at June 09, 2014

    你应该先说明你的 job 想要干什么,依赖哪些数据列。没准直接把表 dump 成 csv 来处理更快了。

  • 好多数据库都支持全文索引,为什么还要自己构建搜索系统? at June 09, 2014

    还有 facet 之类的功能。对比一下 solr 的 feature list 就知道搜索系统,可不止全文索引这么简单了。

  • [成都][2014 年 6 月 20-22 日] Startup Weekend 成都第一个创业周末 at June 09, 2014

    这个不错哦,什么时候北京来一个。

  • 我想做一个解决 it 男单身问题的网站 靠谱么 at June 03, 2014

    感觉只能烧香了。

  • 有没有在页面上画柱状图的 GEM 啊 at June 03, 2014

    http://chartkick.com/

  • Ruby 程序员写 Swift 毫无压力 at June 03, 2014

    只要不像 oc 就好。

  • [北京] 创投圈 招聘 Ruby 工程师 at May 30, 2014

    回复,能把帖子刷回首页吗?

  • 想在 Ruby 中使用 Redis,能给个例子或者相关教程网站么? at April 08, 2014

    https://github.com/nateware/redis-objects

  • [杭州] shou65.com 请你开待遇、定职位! at April 01, 2014

    类似去哪儿的当地人?

  • 创投圈招 Ruby 程序员 at April 01, 2014

    #1 楼 @lhy20062008 三里屯

  • 转让 2 根 金士顿 DDR3 1300 4G 的苹果笔记本内存 at April 01, 2014

    新的 269,京东上卖。 个人觉得,内存这东西,新旧本身,从使用上,不知道有什么差别。所以,价格也没有打对折的打算。 合适就拿走。

  • 转让 2 根 金士顿 DDR3 1300 4G 的苹果笔记本内存 at March 31, 2014

    @stupid @llvm 价格 400,底价 350。

  • 转让 2 根 金士顿 DDR3 1300 4G 的苹果笔记本内存 at March 28, 2014

    #2 楼 @llvm 报个价呗

  • 转让 2 根 金士顿 DDR3 1300 4G 的苹果笔记本内存 at March 28, 2014

    #1 楼 @stupid 报个价呗

  • 转让 2 根 金士顿 DDR3 1300 4G 的苹果笔记本内存 at March 26, 2014

    报个价,合适就出了呗。这里居然没找到私信或者 DM 的入口,诡了个异。

  • Prev
  • 1
  • 2
  • 3
  • Next
关于 / RubyConf / Ruby 镜像 / RubyGems 镜像 / 活跃会员 / 组织 / API / 贡献者
由众多爱好者共同维护的 Ruby 中文社区,本站使用 Homeland 构建,并采用 Docker 部署。
服务器由 赞助 CDN 由 赞助
iOS 客户端 / Android 客户端 简体中文 / English