zoukankan      html  css  js  c++  java
  • ruby 元编程

    一 对象模型

    kernel Module

    Kernel.private_instance_methods.grep(/^pr/)

    private method

    1 如果一个方法接收者不是你自己,一定要指定一个接收者

    2 私有方法 只能指定一个隐含接收者(可调超类的私有方法)

    类本身是Class类的对象。类的名字是个常量

    Class<Module,模块和类的名字扮演目录角色,按树形结构组织

    include Module时 M被插入到祖先链中,在该类的正上方

    二 方法

    obj.send(:method,arg)   #动态派发 ojb.method(arg)

    Module#define_method   #动态方法 代替def

    string#grep(){}

    def method_missing(method,*args)

    puts “you called:#{method}(#{args.join(‘, ‘)}”

    end

    三 blocks

    Kernel#local_variables() 跟踪绑定的名字

    ruby作用域不像java/c#中嵌套 内部可以看到外面

    类定义,模块定义,方法调用时 时关闭前一个作用域

    instance_eval

    instance_exec 可休参数

    打包代码

    proc lambda

    &proc 代表一个代码块

    proc中return 表示从定义的作用域中返回

    lambda ruturn 表示中lambda中返回

  • 相关阅读:
    从远程库克隆
    添加远程库
    远程仓库
    删除文件
    xml 解析的四种方式
    遍历Map
    Spring 和SpringMVC 的父子容器关系
    JDK各版本新特性!
    看啦这么就别人的博客 我也来写一篇! Object转换其他类型
    手机访问电脑搭建的服务器地址
  • 原文地址:https://www.cnblogs.com/anjuncc/p/5485169.html
Copyright © 2011-2022 走看看