热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ruby是什么段位,ruby是什么意思中文翻译

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http:blog.csdn.netjiangjunshow也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

                1 - Ruby是什么东东?

Ruby是一种简单的面向对象编程语言,十分容易上手,并且功能强大。她是一个日本的Yukihiro Matsumoto(大家都叫他Matz.)在1995年首次发布的。Ruby从Perl语言那里借鉴了许多东西(有人形象地说Ruby是Perl的漂亮的妹妹:),和Perl相似,Ruby也擅长于文本处理、系统管理等任务。和Smalltalk一样,Ruby是一种纯粹的面向对象语言,任何东西都是对象。下面是Ruby语言的一些特性: 

* 语法简单、优雅
* 解释型执行、方便快捷
* 完全面向对象
* 内置正则式引擎,适合文本处理
* 拥有很多高级特性(操作符重载、Mix-ins、Singleton Methods,...)
* 有优雅、完善的异常处理机制
* 自动垃圾收集
* 高度可移植性(在Windows, Unix, Linux, MacOS上都可以运行)

2 - Ruby能干什么?给我看一些Ruby语言代码!

Ruby作为一种通用的程序设计语言,和其它常用的编程语言一样,可以编写大部分我们日常遇到的任务,而且完成得更简单优雅。已经有人用她编写了Web服务器程序、科学计算程序、视频 游戏 软件和其他有趣的应用。更多的人用她来做程序原形实验和处理每天遇到的各种琐碎的编程任务。
你想看Ruby代码?好的,下面就是用Ruby编写的几个简单程序的代码:

# 1 - 打印3次“Hello, world!”

3.times do
print "Hello, world!/n"
end

# 2 - 计算“1 + 2 + 3 + ... + 100”

sum = 0
for i in 1..100
sum += i
end
print "1+2+3+...+100 = ", sum, "/n"

# 3 - 简单的方法调用

def hello(name)
print "Hello, ", name, "/n"
end

hello("jellen")

# 4 - 简单的Ruby类和它的调用

class Man
def initialize(name)
  @name = name
end

def show_info()
  puts "I'm a man. My name is #{@name}."
end
end

jellen = Man.new("jellen")
jellen.show_info()

3 - “Ruby”这个名字从何而来?

受到了Perl的影响,当初Matz.也想给他发明的语言起一个珠宝的名字,所以后来他想到了“Ruby”(意思是红宝石),作为这种新语言的名字。在生肖石中,pearl代表六月,ruby刚好是代表七月。所以他认为Ruby是一个作为比Perl更新的语言的好名字(但愿也是真的更好的)。

4 - 我对Ruby的历史感兴趣,请讲点关于Ruby发展历程的东西。

大约在1993年的时候,Ruby之父Matz.开始对脚本语言(scrīpting language)感兴趣。在通过一些分析和思考之后,Matz.认识到了脚本语言是可以变得很强大和灵活的,于是他准备把脚本语言作为他的发展方向。和很多人一样,Matz.是一个面向对象编程的fans,所以他想研究一种面向对象的脚本语言。然后,他到网络上去搜集了一些相关的资料,并且很快发现了Perl 5,当时它还没有发布,并且准备支持面向对象编程。但是通过一段时间了解后,Matz.发现这并不是他想的东西(可能是Perl语言非自然的面向对象方式使他厌恶),所以他放弃了把Perl当作一个面向对象的脚本语言使用的念头。随后Matz转向了Python,Python生成是一个解释型的、面向对象语言,但是Matz发现它并不能完全算作“面向对象”语言。Matz认为Python是面向对象和过程化程序设计语言(Procedural Programming Language)的混合产物。Matz.希望找到的是一种比Perl更强大、比Python更面向对象的语言,但是在那个时候他找不到合适的。经过一番思想斗争,他打算自己设计一个全新的编程语言。Matz.的开发从1993年2月24日开始,在同年夏天,第一个ruby语言程序"Hello, world!"成功运行。随后,Ruby语言的第一个alpha版本在1994年12月发布。

在1996年以前,都是Matz.一个人在开发Ruby的;随着Ruby社区的渐渐形成,很多社区成员都给了Matz.许多有意义的帮助,包括提交bug和patch等。现在,Ruby像其他开源软件一样,有自己的开发团队,任何有能力的个人或团体都可以参与Ruby的进化。

5 - Ruby的运行效率如何?我能用Ruby编写应用程序吗?

Ruby是解释型的语言,效率当然和传统编译型的语言有差距。未来的计划是使Ruby的运行效率和编译型语言更加相近。现在已经有了目标为编写Ruby虚拟机的Rite项目,还有一个Cardinal项目在做Parrot虚拟机的Ruby前端程序。解释型执行确实在一定程度上影响了Ruby的运行速度,但是实际上Ruby在各种语言运行速度测试上表现的相当好。虽然一般没有Perl那么快,但是并没有慢多少。

我们当然可以用Ruby做桌面应用程序,事实上也已经有很多人这样做了。但是在开始用Ruby做应用程序之前,你必须了解它不会像你的C++程序那样快,然后生成的程序文件体积会比原生程序大一点。

6 - 听说Python也很不错,Ruby和它相比有什么特点?我要选择哪个呢?

Python和Ruby都声称自己是面向对象的程序设计语言,但是和Smalltalk不同,你可以在Python和Ruby中编写面向过程的程序代码。Smalltalk只有对象,在完全理解对象、继承和相当数量的Smalltalk系统类之前,你不能做任何事情。通过提供对过程化编程范式的支持,Python和Ruby“修复”了这个使Smalltalk不能进入主流的原因(毕竟,过程化思想对初学者来说很好理解)。但是这两种语言是通过完全不同(可以说正好相反)的方法来实现这个目标的。

Python是一种混合型的语言。它有函数的概念来支持过程化编程,也有对象的概念支持面向对象编程。Python通过允许函数和方法之间用方法定义前显式的'self'参数的转化来连接这两个世界。当一个函数插入一个对象时,它的第一个参数自动变成一个指向接受对象的引用。

但是,Ruby中的面向过程编程代码其实是“假装”出来的。Ruby语言是纯面向对象语言,它没有函数概念,只有类方法调用。在一个Ruby“函数调用”中,方法的默认接受者是'self',这是一个隐藏的参数,就像C++里面的'this'指针。一个在类外面的'def'方法声明(这在Python里面是函数),在Ruby里这实际上是一个方法调用。这个“假的函数”会自动变成Object对象的一个私有成员(Object对象是Ruby继承树中的根)。所以如果您对面向对象编程方法还不熟悉,您还是可以通过编写许多'def’方法,然后直接调用---这样的面向过程思想来完成很多有用的代码的。

Ruby的纯面向对象特性提供了一些Python缺少的或者正在发展的特性:一个统一的单根继承体系、元类、接受任何东西为子类和统一的方法调用(绝对没有len ()是函数但是items()是方法这种自相矛盾)。同Java类似,Ruby只支持单继承,但是它有一个非常强大的Mix-in概念:一个类中可以包括多个模块(Module),然后把模块中的方法,常量等变成自己的东西。

而且,Ruby提供了和Smalltalk中功用相同的闭包(Closures)和程序块(Blocks)概念。Ruby的集合类库和迭代器是相当出色的,比Python提供的特殊解决方法更加强大和优雅。

Ruby的语法和设计哲学深深地受到了Perl的影响。和Perl一样,我们可以把'if','while'等放在一个语句的尾部(比如这样“print "Yes!" if a == 1”);然后Ruby中很多特性都是从Perl中直接拿过来的,比如对正则表达式的内置支持、$_变量、 Here documents概念和$、前缀是对不同类型的变量的修饰等。

如果你喜欢Perl,那么你也会喜欢Ruby的自由语句结构;如果你习惯Smalltalk和Java,那么你也会喜欢Ruby的OO语法,但是如果你喜欢Python,那么你可能喜欢也可能不喜欢Ruby,因为Python和Ruby之间设计哲学的相差的太大了

所以ttdpy打算是用Python还是Ruby的时候,我建议你先两个都接触一下, 看看自己对哪个比较感冒,然后再做决定(jellen是因为不习惯Python古怪的缩进语法才投奔Ruby的)。你要注意的是Ruby语法比Python复杂多了,不过幸运的是语法之间都是很优雅地结合在一起的。 呵呵,但愿你会选择Ruby,并且成为一个快乐的Rubyiest!

7 - 我想学Ruby,但是不知道我的系统是否支持?我需要安装什么软件?

Ruby可以很好的在Windows系列、各种Linux、Unix和MacOS上运行,甚至在(Dos、BeOS、OS/2等不常见系统上也可以)。所以,你要做的是到Ruby语言的主页:www.ruby-lang.org去下载你使用操作系统对应的Ruby安装程序,安装上去就可以了。然后建议你安装一个支持Ruby语言的语法显亮的文本编辑器(比如Vim或者Emacs),这会使你的Ruby之旅更加惬意!

8 - 哪里有Ruby的学习资料?

你可以到www.ruby-doc.org去下载一个“ruby-doc-bundle”,你们有Ruby的用户手册,参考文档和被称为“Ruby语言圣经”的《Programming Ruby》第1版的电子书。这些都是很有用的资料,可惜都是英文的,对英文不好的朋友是个障碍。不过随着Ruby的流行,越来越多的Ruby教材资料会出版出来。            

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow


推荐阅读
  • 利用Python与Android进行高效移动应用开发
    通过结合Python和Android,可以实现高效的移动应用开发。首先,需要安装Scripting Layer for Android (SL4A),这是一个开源项目,旨在为Android系统提供脚本语言支持。SL4A不仅简化了开发流程,还允许开发者使用Python等高级语言编写脚本,从而提高开发效率和代码可维护性。此外,SL4A还支持多种其他脚本语言,进一步扩展了其应用范围。通过这种方式,开发者可以快速构建功能丰富的移动应用,同时保持较高的灵活性和可扩展性。 ... [详细]
  • 该大学网站采用PHP和MySQL技术,在校内可免费访问某些外部收费资料数据库。为了方便学生校外访问,建议通过学校账号登录实现免费访问。具体方案可包括利用学校服务器作为代理,结合身份验证机制,确保合法用户在校外也能享受免费资源。 ... [详细]
  • 如何精通编程语言:全面指南与实用技巧
    如何精通编程语言:全面指南与实用技巧 ... [详细]
  • Python与R语言在功能和应用场景上各有优势。尽管R语言在统计分析和数据可视化方面具有更强的专业性,但Python作为一种通用编程语言,适用于更广泛的领域,包括Web开发、自动化脚本和机器学习等。对于初学者而言,Python的学习曲线更为平缓,上手更加容易。此外,Python拥有庞大的社区支持和丰富的第三方库,使其在实际应用中更具灵活性和扩展性。 ... [详细]
  • Spring Boot 中配置全局文件上传路径并实现文件上传功能
    本文介绍如何在 Spring Boot 项目中配置全局文件上传路径,并通过读取配置项实现文件上传功能。通过这种方式,可以更好地管理和维护文件路径。 ... [详细]
  • 深入解析HTML5字符集属性:charset与defaultCharset
    本文将详细介绍HTML5中新增的字符集属性charset和defaultCharset,帮助开发者更好地理解和应用这些属性,以确保网页在不同环境下的正确显示。 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 探索Web 2.0新概念:Widget
    尽管你可能尚未注意到Widget,但正如几年前对RSS的陌生一样,这一概念正逐渐走入大众视野。据美国某权威杂志预测,2007年将是Widget年。本文将详细介绍Widget的定义、功能及其未来发展趋势。 ... [详细]
  • javascript分页类支持页码格式
    前端时间因为项目需要,要对一个产品下所有的附属图片进行分页显示,没考虑ajax一张张请求,所以干脆一次性全部把图片out,然 ... [详细]
  • 本文介绍了如何利用HTTP隧道技术在受限网络环境中绕过IDS和防火墙等安全设备,实现RDP端口的暴力破解攻击。文章详细描述了部署过程、攻击实施及流量分析,旨在提升网络安全意识。 ... [详细]
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • 阿里巴巴终面技术挑战:如何利用 UDP 实现 TCP 功能?
    在阿里巴巴的技术面试中,技术总监曾提出一道关于如何利用 UDP 实现 TCP 功能的问题。当时回答得不够理想,因此事后进行了详细总结。通过与总监的进一步交流,了解到这是一道常见的阿里面试题。面试官的主要目的是考察应聘者对 UDP 和 TCP 在原理上的差异的理解,以及如何通过 UDP 实现类似 TCP 的可靠传输机制。 ... [详细]
  • 本文深入解析了Python在处理HTML过滤时的实现方法及其应用场景。通过具体实例,详细介绍了如何利用Python代码去除HTML字符串中的标签和其他无关信息,确保内容的纯净与安全。此外,文章还探讨了该技术在网页抓取、数据清洗等领域的实际应用,为开发者提供了宝贵的参考。 ... [详细]
  • Nginx不仅是一款轻量级的高性能Web服务器,还具备出色的负载均衡和反向代理功能。它支持复杂的正则匹配规则、动静内容分离以及灵活的URL重写功能,使得配置和管理更加便捷高效。此外,Nginx提供了多种负载均衡算法,如轮询、加权轮询、最少连接数等,以满足不同应用场景的需求。 ... [详细]
  • 作为140字符的开创者,Twitter看似简单却异常复杂。其简洁之处在于仅用140个字符就能实现信息的高效传播,甚至在多次全球性事件中超越传统媒体的速度。然而,为了支持2亿用户的高效使用,其背后的技术架构和系统设计则极为复杂,涉及高并发处理、数据存储和实时传输等多个技术挑战。 ... [详细]
author-avatar
冰淇淋泡火锅_589
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有