• 认识Ruby


    简介

    Ruby,一种简单快捷的面向对象(面向对象程序设计)脚本语言,在20世纪90年代由日本人松本行弘(Yukihiro Matsumoto)开发,遵守GPL协议和Ruby License。它的灵感与特性来自于 Perl、Smalltalk、Eiffel、Ada以及 Lisp 语言。由 Ruby 语言本身还发展出了JRuby(Java平台)、IronRuby(.NET平台)等其他平台的 Ruby 语言替代品。

    发展历程

    Ruby明显比其他类似的编程语言(如Perl或Python)年轻,又因为Ruby是日本人发明的,所以早期的非日文资料和程序都比较贫乏,所以在网上仍然可以找到类似“Ruby的资料太少”之类的批评。约于2000年,Ruby开始进入美国,英文的资料开始发展。Ruby归根结底源于Perl和Lisp两类语言,与C,C++,C#,Java是不同大类。

    Ruby的作者于1993年2月24日开始编写Ruby,直至1995年12月才正式公开发布于fj(新闻组)。因为Perl发音与6月诞生石pearl(珍珠)相同,因此Ruby以7月诞生石ruby(红宝石)命名。

    版本记录

    2011年10月31日1.9.3的第一个稳定版本1.9.3p0发布。

    2013年2月22日发布了Ruby 1.9.3-p392。

    2013年2月24日发布了Ruby 2.0.0-p0。

    2015年4月13日发布了Ruby 2.2.2。

    2015年12月25日发布了Ruby 2.3.0。

    最新稳定版本为:Ruby 3.1.0。

    语言标准

    Ruby的变量有一定的规则,以 开头的一定是全局变量,以 @ 开头的都是实例变量,而以 @ @ 开头的是类变量。常数则以大写字母开头;这种方法,对文本编辑器的命令补全很有帮助,如在 V i m 下先键入 开头的一定是全局变量,以@开头的都是实例变量,而以@@开头的是类变量。常数则以大写字母开头;这种方法,对文本编辑器的命令补全很有帮助,如在Vim下先键入 开头的一定是全局变量,以@开头的都是实例变量,而以@@开头的是类变量。常数则以大写字母开头;这种方法,对文本编辑器的命令补全很有帮助,如在Vim下先键入及开头字母,再敲击Ctrl+P,则可专门补全本文件以及关联文件中的全局变量,Perl与PHP亦有此优点。

    已经定义的类可以在运行时修改。

    Ruby是动态语言,你可以在程序中修改先前定义过的类。 也可以在某个类的实例中定义该实例特有的方法,这叫做单例方法。

    class MyClass
        def the_method
            "generalmethod"
        end
    end
    mc=MyClass.new
    def mc.the_method
        "special for this instance."
    end
    mc.the_method#specialforthisinstance
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    使用Ruby可以写出简短而又功能强大的代码。

    下面的方法用来完成两个矩阵的乘积。

    def matrix_mul(matrix1,matrix2)
        result=[]
        (0...matrix1.length).each{|i|
            temp=[]
            (0...matrix2[0].length).each{|j|
                tmp=0
                (0...matrix1[0].length).each{|k|
                    tmp+=matrix1[i][k]*matrix2[k][j]
                }
                temp<<tmp
            }
            result<<temp
        }
        return result
    end
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    注:Ruby标准库中已包含矩阵库 Matrix。

    语言特点

    • 完全面向对象
      在Ruby语言中,任何东西都是对象,包括其他语言中的基本数据类型,比如整数
    • 变量没有类型
      Ruby的变量可以保存任何类型的数据。
    • 任何东西都有值
      不管是数学或者逻辑表达式还是一个语句,都会有值。
    • Ruby语言很优雅,可以做到不需要注释就可以读懂。

    优点

    • 语法简单
    • 普通的面向对象功能(类,方法调用等)
    • 特殊的面向对象功能(Mixin,特殊方法等)
    • 操作符重载
    • 错误处理功能
    • 迭代器和闭包
    • 垃圾回收
    • 动态载入(取决于系统架构)
    • 可移植性高.不仅可以运行在多数UNIX上,还可以运行在DOS,Windows,Mac,BeOS等平台上
      适合于快速开发,一般开发效率是JAVA的5倍
  • 相关阅读:
    ImmunoChemistry艾美捷高级钙素AM细胞活力试剂盒方案
    【反射】Field类
    Pytorch总结十四之优化算法:梯度下降法、动量法
    CDH 02cloudera安装包配置&&JDK1.8(markdown新版)
    接口设计时的一些建议
    Unity Editor 打包指定资源(AssetBundle)和加载指定资源
    Mojo语言的运用
    开源框架 WebFirst 一键生成项目,在线建表
    常见的LED显示屏拼接优缺点解析
    docker-compose快速搭建kafka集群
  • 原文地址:https://blog.csdn.net/weixin_59197425/article/details/127605717