ruby语言是什么东西?

Ruby语言的语法 puts numend```作为一种优雅、简洁、灵活的编程语言,Ruby在Web开发、自动化脚本、数据分析和游戏开发等多个领域发挥着重要作用。尽管面临竞争,Ruby语言凭借其强大的社区支持和快速开发的能力,依然在开发者心中占据着一席之地。未来,随着新特性的不断推出,Ruby将继续演进,满足日益增长的开发需求。对于开发者而言,掌握Ruby将为自己的职业生涯增添一笔宝贵的财富。无论你是刚接触编程的新手,还是经验丰富的开发者,Ruby都能为你提供一种全新的编程体验。 阅读详情
作者:http://www.ruby-cn.org/ 转载请保留


1、简介
    Ruby是日本的Yukihiro Matsumoto写的,简单易学的面向对象的脚本语言,像perl一样,有丰富的文字处理、系统管理等丰富 功能,但是ruby要简单,容易理解和扩充。跟python很类似,但是在国内远没有python有名。

一般认为,他有如下特点:

  • 简单 
    解释型语言(インタプリタ),所以不必事先编译(コンパイル)。
    变量没有类型的区分,虽然可以省去类型错误的担忧,但也会引起编译时候检查的脆弱。
    变量不需要定义。
    简单的语法,多从Eiffel继承而来。
    不需要内存管理,系统提供GC(ガーベージコレクタ)处理机制。
  •  纯的面向对象的语言
    一切都是对象,像整数等类型从开始就被设计为对象来处理。
    class(クラス),继承,method(メソッド)等
    (特殊方法?)特異メソッド 
    module(モジュール)によるMixin 
    迭代(イテレータ)和闭包(クロージャ)。一个在闭包开始时定义的资源在闭包结束后会被释放, 适合于socket,数据库连接,文件句柄等。
  • 脚本语言
    解释执行
    很强的文字处理能力和正则表达式
    直接访问OS,用ruby编写系统程序也是可能的。
  • 其他
    支持多种长整数,内存允许,可以进行很大数的计算操作。
    具备异常处理能力,具备java的异常处理功能。
    dynamic loading(ダイナミックローディング )。可以在运行时候重定义自己, 类也可以在运行时继承/取消继承。
    线程。现在的ruby已经有线程的概念,Ruby2.0好像能支持本地线程。
    反射(Reflection)。Ruby可以看到程序的内部,比如一个模块是否含一个特定方法, 一个对象是哪个class等等。类似java。
    扩展性。C api。
    发行许可证。基于Ruby Artistic License (BSD样式的)和GPL。
2、环境安装

(1).安装1.可以从www.ruby-lang.org下载源代码进行安装。

(2).解压缩源文件,进入安装目录

#./configuremake

#make 

#install

3.使用

(1). 使用irb。irb是一个交互接口,在shell里运行它,首先显示提示符,等待输入;用户输入之后,它在进行处理,把结果显示给用户。

#irb

irb(main):001:0> $str="hello world!/n"

=> "hello world!/n"

irb(main):002:0> print $str

hello world!

=> nil

irb(main):003:0>


(2).像其他语言一样,从程序文件运行

[root@tserver /root]# chmod a+x foo.rb   

[root@tserver /root]# cat foo.rb

#!/usr/local/bin/ruby -w

puts "Hello, World!"

 

[root@tserver /root]# ruby foo.rb

Hello, World!

[root@tserver /root]# ./foo.rb

Hello,World!

[root@tserver /root]#

 


(3).Ruby使用方法 
ruby [ option ...] [ -- ] [ programfile ] [ argument ...]pre>

关于Ruby的命令行参数,可以参考相关文档。

4.简单例子

 

 def sayGoodnight(name) 
       result = "Goodnight, " + name
      return result
end

# Time for bed...
puts sayGoodnight("John-Boy")
puts sayGoodnight("Mary-Ellen")

    可以看到,ruby的语法还是比较简单的,首先,你不必每行都写个分号, Ruby注释以#开头,直到行尾。
    Methods定义以关键字def开始,接着是方法名和方法参数, ruby不需要用braces来界定程序主体,只需要关键字end就行了。
    这个程序也相当简单,第一行把``Goodnight, ''加上参数name,并把它赋给了局部变量result,第二行把结果返回给调用者。注意我们不需要定义变量result。
    最后我们调用了2次这个方法,并把结果传给puts函数,这个函数简单的再新行上打印传给它的参数而已,最后结果像这样:


Goodnight, John-Boy
Goodnight, Mary-Ellen

 

      其实 puts sayGoodnight("John-Boy")  包括了2个函数调用,一个put系统函数,一个sayGoodnight函数。但是为什么puts调用没有用括号呢?实际上,下面的调用都是等价的:

puts(sayGoodnight "John-Boy")
puts(sayGoodnight("John-Boy"))
puts sayGoodnight("John-Boy")
puts sayGoodnight "John-Boy"

 
       但是如果都不写括号,你知道那个参数传给谁吗?所以还是建议在方法后面加上括号,方便阅读源程序。

    这个方法还展示了string对象,有很多种办法可以创建string对象,但最普通的要算用string literals了:单引号或双引号包起来的一组字符。它们的区别是ruby构建这两种字符串时要做的操作。对单引号引起来的字符串来说,ruby做的工作会很少,单引号引起来得部分就是它的值。如果是双引号引起来得,则要做多一些工作了。首先,它检查是否包含反斜线,也就是转义符,然后用适当的二进制值代替,最常见的就是"/n"了,它将会被换行替换。如:

 
puts "And Goodnight,/nGrandma"
产生结果如下:
And Goodnight,
Grandma

    第二件事情就是expression interpolation。#{ expression }被expression的值代替,例如,下面的方法和刚才的例子是一样的结果

def sayGoodnight(name)
    result = "Goodnight, #{name}"
    return result
end

    当然我们还可以再简化这个函数。一个ruby函数返回的结果就是最后一行的值,所以这个函数也可以写成如下:
def sayGoodnight(name)
    "Goodnight, #{name}"
end

    Ruby使用俗定的命名方式为变量命名,变量名的第一个字母标志了它的类型,是局部变量,还是方法参数,方法名应该以小写字母或者下划线开头,全局变量应该以$开头,实例变量以@开头, class变量以@@开头,而类名,模块名,常量应该以大写字母开头。
    一个名字可以是字母,数字,下划线的任意组合,但是有@后面不允许直接跟着一个数字。
    总之,作为一门语言,不是一两个例子,几个文章能说清楚地,在网上流传的我爱ruby的10个原因等跟天下足球top ten类似的短文中,总会看到一个理由,就是fun with ruby。也许,更有趣的还在后面。
Ruby表达式的力量与灵活性 本文详细探讨了Ruby语言中表达式的独特性及其强大功能。Ruby中的几乎所有东西都可以看作是一种表达式,这带来了串联语句、使用if和case作为表达式以及自定义运算符行为的能力。此外,还介绍了命令表达式、赋值操作以及并行赋值和展开操作符的使用,这些都是Ruby语言灵活性的体现。 阅读详情

相关推荐

物理专业书库模板(1):物理学书单(适合物理专业本科生、研究生、科研工作者、物理爱好者...)

物理专业书库模板(1):物理学书单(适合物理专业本科生、研究生、科研工作者、物理爱好者...) 求赞求喜欢求分享,建议关注,防止文章丢失。

hepyang的博客 2179

Ruby语言能做什么?

Ruby语言具有很多优点,它可以用于开发各种类型的应用程序,包括Web应用、桌面应用、移动应用等。Ruby on Rails框架是一个非常流行的Web开发框架,它基于Ruby语言开发,可以快速构建高质量的Web应用程序。比如,Ruby/GTK是一个基于GTK+的Ruby GUI工具包,可以用于开发Linux和Windows平台下的图形界面程序。Ruby语言也可以用于移动应用程序的开发。比如,RubyMotion是一个基于Ruby语言的移动应用开发框架,可以用于开发iOS和Android平台下的应用程序。

记录 IT 领域经验与见解的博客 3775

TCS34725颜色识别模块实战调校:从“一坨”例程到精准RGB

本文针对TCS34725颜色识别模块初始数据不准的问题,提供了从基础例程到精准调校的实战指南。核心在于通过白光校正与黑白光校正两种方法,补偿传感器偏差与环境光影响,将原始数据准确映射为标准RGB值。文章详细阐述了校准原理、操作步骤与代码实现,并分享了进阶调试技巧与避坑指南,帮助开发者显著提升颜色识别的准确性与项目可靠性。

weixin_29188043的博客 287

Ruby语言简介

Ruby是一种解释型、面向对象、动态类型的语言。Ruby采取的策略是在灵活性和运行时安全之间寻找平衡点。随着Rails框架的出现,Ruby也在2006年前后一鸣惊人,同时也指引人们重新找回编程乐趣。尽管从执行速度上说,Ruby谈不上有多高效,但它却能让程序员的编程效率大幅提高。本文将讲述Ruby语言的基础语言特性,包括基本的语法及代码块和类的定义。 1. 基础 在Ruby交互命令行中输入以...

whatday的专栏 1万+

简单的图书管理系统---SpringBoot+mysql通过前后端分离实现增删查改

SpringBoot+mysql通过前后端分离实现增删查改 上篇文章介绍了如何写后端接口 SpringBoot连接MySQL获取数据写后端接口 这篇文章,我们就介绍一下怎么写前端 点击修改跳出修改界面,点击添加书籍跳出添加书籍界面 点击删除,直接删除一行数据 其他的也没什么解释了,直接上代码(看不懂的可以私聊我哟) <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>

爱笑的博客 2014

*手把手教你学 Simulink——压缩机用永磁同步电机无位置传感器 I‑F 启动(Sensorless I/F Starting)控制仿真

dtdi^α​​zα​e^α​ω^θ^​=Ls​1​(−Rs​i^α​+usα​−zα​)=K⋅sign(i^α​−iα​)=zα​+Kpll​⋅(i^α​−iα​)同理 β=PLL(e^α​,e^β​)=∫ω^dt​。给定 Id​=Iset​, Iq​=f(θopen​)按设定 fstart​(t)Iq​=k⋅sin(θopen​)投影 → 恒幅 Is​=Id2​+Iq2​​。​ 将 Id​,Iq​→ Iα​,Iβ​→ SVPWM。Id​=Ialign​(弱对齐 → 防抖动)

amy_mhd的博客 38

Ruby语言基础知识

Ruby是一种简单快捷的面向对象脚本语言,由日本人松本行弘(Yukihiro Matsumoto)在20世纪90年代开发,遵守GPL协议和Ruby License。它的灵感和特性来自于Perl、Smalltalk、Eiffel、Ada以及Lisp语言。以下是Ruby语言的一些特点:面向对象:在Ruby中,一切皆是对象。这意味着所有的数据和代码都被视为对象,每个对象都有自己的属性和方法。动态类型:Ruby是一种动态类型语言,这意味着你不需要在声明变量时指定其类型。

weixin_44014982的博客 2531

[Python] -项目实战10- 用 Python 自动化批量重命名文件

本文介绍了使用Python实现文件批量重命名的技术方法。主要内容包括:1)使用os和pathlib模块进行基础文件操作;2)提供多种实用脚本示例,如添加序号、替换字符、添加时间戳等;3)进阶功能包括用户输入和错误处理;4)GUI工具实现方案;5)常见问题与优化建议。文章详细讲解了从简单到复杂的批量重命名实现方法,帮助读者快速掌握这一提高工作效率的技能。建议开发者注意路径处理、错误管理等细节,确保脚本稳健运行。

每日出拳老爷子的博客 815

Ruby语言学习

ruby的基本用法

weixin_44764783的博客 2145

ChatGPT搭配Claude 4写文献综述效果出奇的好!四步法直接写出逻辑清晰、层次分明的文献综述(附复制即用专业提示词)

请梳理【研究领域】中核心理论的发展演进过程,包括每一阶段理论的核心观点、提出背景与推动力,并指出理论演化中的关键节点或范式转变。请根据以下文献摘要内容,帮助我梳理该主题的研究趋势,包括:常见研究视角、研究方法的演变、研究对象的变化方向等。请根据以下研究空白与我已有的研究基础,帮我生成一个清晰的研究定位,包括:研究主题、研究对象、方法路径和理论框架。先要明确这个研究领域中一个主导或热门的理论,比如社会支持理论、认知负荷理论等,强调这个理论内部的不一致性、适用性争议,通过交代这⼀争议的背景,引发读者兴趣。

智能AI让学术科研更容易 568

(考研湖科大教书匠计算机网络)第四章网络层-第三节3、4:划分子网的IPv4地址和无分类IP地址

子网掩码: 32比特的子网掩码可以表明分类IP地址的主机号部分被借用了几个比特作为子网号子网掩码使用连续的比特1来对应网络号和子网号子网掩码使用连续的比特0来对应主机号将划分子网的IPv4地址与其相应的子网掩码进行逻辑与运算就可得到IPv4地址所在子网的网络地址如下图。

快乐江湖的博客 1346

Ruby编程语言简介

编写代码的过程也很简单,但要确保我们能理解代码,那么我们就需要学习如何编写代码,然后把其输出到实际应用中。我们使用 list作为接口提供了一个简单的代码示例,其内容如下:通过调用 list我们可以实现以下功能:当我们访问数据库时,首先使用 list调用了我们要访问的数据库的名称。在代码中,我们创建了一个对象: HibernateHibernate将存储在对象中,我们可以使用此对象来创建服务器,因此我们需要使用 Hibernate来实现这一功能:我们在 Hibernate中创建了 GNU UNU节点,并使用

戴子雯的博客 5632

YOLO26涨点改进 |TGRS 2026 | 全网独家改进、特征融合创新篇 | 引入CMIFE跨模态交互特征提取模块,充分挖掘互补信息,适合多模态图像融合,目标检测,实例分割,遥感图像分类高效涨点

本文提出CMIFE模块用于改进YOLO26网络模型,通过跨模态交互特征提取实现多尺度特征的精细化融合。该模块采用双注意力机制(自注意力强化模态内一致性,交叉注意力实现跨模态互补信息筛选),有效解决了传统YOLO融合中的信息冗余和负迁移问题。实验表明,CMIFE模块在保持模型实时性的同时,显著提升了小目标检测、遮挡场景等复杂环境下的检测精度。文章详细介绍了模块原理、网络结构、核心代码实现方法,并提供了三种改进版YOLO26的配置文件方案(yolo26_CMIFE-1/2/3.yaml)。

Ai缝合怪、助力小伙伴高效发论文 146

ruby语言是什么东西

1、简介 Ruby是日本的Yukihiro Matsumoto写的,简单易学的面向对象的脚本语言,像perl一样,有丰富的文字处理、系统管理等丰富 功能,但是ruby要简单,容易理解和扩充。跟python很类似,但是在国内远没有python有名。 Ruby是一种功能强大的面向对象的脚本语言,可以使用它方便快捷地进行面向对象程序设计。与Perl类似,而且Ruby具有强大的文本处理功...

dayou7738的博客 213

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

常用语言对比,真是好东西。JavaScript, PHP, Python, Ruby

http://hyperpolyglot.org/scripting 常用语言对比,真是好东西。

程序员写的技术 FAQ 和杂文 1950

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Ruby自学手册!

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

weixin_40050195的博客 241

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Ruby的作者和由来

Matz是一个专业的软件工程师,在日本有名的open source公司netlab.JP工作,而且他在日本也是一个高姿态的open source 布道者。他参与了几个开源软件项目,包括cmail,这是一个基于emacs的邮件用户代理,完全用emacs lisp 编写。Ruby也是他的第一个在日本以外的国家如此出名的作品。 在1993年的时候,有一次他和同事们谈论关于脚...

ama7449的博客 178

Ruby语言的编程范式

Ruby是一种动态的、面向对象的编程语言,由日本程序员松本行弘(Yukihiro Matsumoto)于1995年首次发布。与其他许多编程语言不同,Ruby充满了简洁、优雅和自然的哲学。它设计的初衷是为了提高开发者的生产力,强调程序员的快乐。

2401_90032234的博客 1186

Ruby和其它类似语言的比较

Smalltalk 和smalltalk一样,Ruby也是动态的纯面向对象的语言。你不需要静态的指定数据类型,所有东西都是对象。而且,两者都有垃圾收集机制。在Smalltalk中,流程控制语句也都是通过给对象发送消息来完成的,但有时候这使得程序难以阅读理解。而Ruby中的控制流程结构就显得保守一些,而且也就自然、容易理解一些。说实话,Smalltalk为何物,我一无所知。以上废话全

Ruby语言 6842

Ruby语言的网络编程

网络编程是指在计算机网络中进行程序设计的过程,包括创建网络协议、数据传输及其处理。使用Ruby进行网络编程时,开发者可以利用其丰富的库和框架,快速开发出功能强大的网络应用程序,包括Web应用、API服务、网络爬虫等。

2401_90031819的博客 1420

Ruby语言的区块链

区块链是一种按照时间序列把数据块(Block)串联起来的分布式账本技术。每个数据块包含一组交易记录以及前一个数据块的哈希值,形成一个不可篡改的链条。通过分布式网络,每个参与者都可以访问整个账本,这种透明性增强了信任。

2501_90494486的博客 1255

1. 什么是Ruby?——《跟老吕学Ruby》

Ruby是一种解释型、面向对象、通用的编程语言。它起源于1990年代中期,由日本计算机科学家松本行弘(Yukihiro Matsumoto)设计并开发。Ruby的语法简洁优雅,易于学习和使用,同时提供了强大的功能和灵活性。Ruby是一种功能强大、易于学习和使用的编程语言。它拥有简洁的语法、面向对象的特点、动态类型、元编程等特性,使得开发者能够高效地编写出高质量的代码。Ruby在Web开发、脚本编写、自动化测试、系统运维等领域都有广泛的应用,值得开发者们去学习和掌握。

Python老吕的博客 1962

Ruby语言的游戏开发

Ruby是一种动态、面向对象的编程语言,由日本开发者松本行弘于1995年推出。Ruby设计的初衷是为了提高编程的乐趣和生产力。简单易读的语法:Ruby的语法设计使得代码更易于理解和维护,非常适合初学者入门。动态类型:Ruby是一种动态类型语言,允许开发者在运行时定义变量的类型,提高了灵活性。强大的库支持:Ruby有一个丰富的库生态系统,通过RubyGems可以轻松地管理和使用各种库和工具。面向对象编程:Ruby几乎所有的东西都是对象,开发者可以轻松地使用和扩展对象。强大的社区。

2501_90372930的博客 551
上一篇: 用Rails创建web应用
下一篇: 用Jdk实现AOP
ruby_cn
博客等级 码龄22年 23粉丝 46原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值