zoukankan      html  css  js  c++  java
  • ruby学习笔记(9)

    1) ruby中self类似于js中的this,连它的指向的规则都类似。在js中最外层的顶层对象是window,在ruby中是main。

    2) ruby中全局变量是通过$前辍来标明的。ruby解释器启动时,会初始化大量的全局变量,例如$0包含了ruby正在执行的文件的名字,$:包含了一些目录,$$包含了ruby进程的进程id。

    3) 代码块也是ruby一个非常有特色的东西。在给函数传参之外,还可以选择性地传一个代码块给他。在函数内部使用yield关键字可以访问到代码块,并且可以给代码块传参。代码块还可以接自己的值再传回给函数。

    ====================================

    def more_yielding(a)

        puts "The Code block shall multiply a number by 10."

        result = yield(a)

         puts "The result of this operation is #{result}."

    end

    more_yielding(100){|x| x*10}

    ====================================

    4) 字面构造器。和js一样,ruby中很多基本类型的数据也不需要通过new的方式构造,例如字符串,数组,你可以通过"abc",[1,2,3]就可以定义出来了,不需要通过String.new,Array.new(在js中是new String(),new Array())去定义。但ruby中这种类型的字面构造器比js中多:有String——"abc",Symbol——:symbol,Array——[1,2,3],Hash——{"name"=>"adang","sex"=>"male"},Range——0..9,Regexp——/[a-z]+/。和js相比,hash对象是有内置类的,另外还有Symbol和Range这两种特别的类型。

    5) ruby中关于数据的运算不会像js那样自动的隐式转换,它像as3那样,对数据类型要求非常严谨,我们需要使用to_i,to_s之类的方法显式地对数据进行类型转换。

    =======================

    js:            "hello" + 1              # hello1

    ruby:       "hello" + 1              # 异常

                   "hello" + 1.to_s      # hello1

                   "hello".to_i + 1       # 1

    =======================

    6) 在ruby中访问一个对象具有的方法时,可以有以下几种方法可供调用:

    .methods                       #所有对象本身的方法

    .instance_methods          #所有类实例会有的方法

    .singleton_methods         #为单个实例添加的方法

    .private_methods             #私有方法

    .public_methods               #公有方法

    .protected_methods        #保护方法

    所有这些方法返回的都是最终的方法,包括继承而来的方法,如果不想包括祖先中定义的方法,可以给这些方法传false参数。例如:methods(false)。  

    7) ruby中比较字符串是否相等有两种方法,一种是通过==号,另一种是通过equal?方法。前者比较的是两者的值,后者比较的是两者的址。

    ================================

    "a" == "a"            #true

    "a".equal?("a")    #false

    ================================

  • 相关阅读:
    HDFS上传下载API
    HDFS2.X新特性:HA和Federation联盟
    HDFS2.X架构及工作原理
    浅析Secondary NameNode与namenode
    Flink安装部署
    HDFS基本命令行操作与简单API实用
    Linux基础_Hadoop环境搭建必备
    HBase BlockCache机制讲解
    HDFS集群安装部署
    我亦未曾饶过岁月_面试总结
  • 原文地址:https://www.cnblogs.com/cly84920/p/4426877.html
Copyright © 2011-2022 走看看