20分钟体验Ruby:http://www.ruby-lang.org/zh_cn/documentation/quickstart/
安装:三种方式:源代码;rubyinstaller.exe;ruby.exe
运行:cmd->irb
-------------------------
简单示例:
1、
>puts “Hello World”
Hello World
=>nil //nil是Ruby的空值,puts命令返回nil
2、
>3*2
=>6
>Math.sqrt(9) //Math是自带的数据模块,模块:功能相同的函数放到同一个名称下。
=>3.0
>a = 3**2 //**是次方的意思。给变量a赋值。
=>9
3、
定义函数
>def h //定义函数
>puts "Hello World"
>end //函数结束
=>nil
调用函数,直接输入h或者h()。
------------
>def h(name) //添加入参
>puts "Hello #{name}!"
>end
------------
>def h(name = "defaultName") //为入参添加默认值
>puts "Hello #{name.capitalize}!" //使用入参的字符串值,并且首字母大写
>end
调用:h "world"或者:h
------------
4、
定义类
class Greeter
def initialize(name = "World")
@name = name //@name是实例变量
end
def say_hi
puts "Hello #{@name}!"
end
def say_bye
puts "Bye #{@name}!come back soon!"
def
end
使用类:
>Greeter.new("Pat")
=>#<Greeter:0x16cac @name="Pat">
>g.say_hi
--------
>g.name //compile error 面向对象,属性隐藏
--------
>Greeter.instance_methods //将打印所有方法,很多是继承自父类,如果不希望继承类的方法打印
>Greeter.instance_methods(false)
--------
respond_to是内置函数,用于测试对象对指定方法是否有反应
>g.respond_to?("name") //没有
=>false
>g.respond_to?("say_hi")
=>true
>g.respond_to?("to_s") //to_s是内置函数
=>true
--------
打印并改变类,ruby可以获取甚至改变属性名
>class Greeter //打开类
> attr_accessor :name //通过attr_accessor来改变属性,它会引入两个方法:name(读取变量 //的值);name=方法(为变量赋值)
>end
>g = Greeter.new("kity")
>g.respond_to?("name")
=>true
>g.respond_to?("name=")
=>true
>g.name="kity2"
>g.say_hi
=>Hello kity2!
------------------------
一大波代码...
#!/usr/bin/env ruby class MegaGreeter attr_accessor : names # Create the object def initialize(names = "World") @name = names end # Say hi to everybody def say_hi if @names.nil? puts "....." elsif @names.repond_to?("each") # @names is a list of some kind,iterate! @names.each do |name| puts "Hello #{name}!" end else puts "Hello #{@names}!" end end # Say bye to everybody def say_bye if @names.nil? puts "......" elsif @names.respond_to?("join") # Join the list elements with commas puts "Goodbye #{@names.join(", ")}. Come back soon!" else puts "Goodbye #{@names}. Come back soon!" end end end if __FILE__ == $0 mg = MegaGreeter.new mg.say_hi mg.say_bye # Change name to be "Zeke" mg.names = "Zeke" mg.say_hi mg.say_bye # Change the name to an array of names mg.names = ["a", "b", "c"] mg.say_hi mg.say_bye @Change to nil mg.names = nil mg.say_hi mg.say_bye end
存储文件:ri20min.rb,然后运行:ruby ri20min.rb
上面的代码中,使用each函数,它是一个可接受代码块的函数,它在迭代每一个元素时,会调用一次接受的代码块。代码块像是一个不需要命名的函数。
@names.each do |name| //很优美 puts "#{name}"
-----------------------
代码块
代码块用于处理比迭代列表更繁琐的工作,您可以用它来自动安装卸载或处理运行错误。真正做到让用户省心、放心。
使用@names.respond_to?("join")这风格称为“鸭子型”-它走起来像鸭子,叫起来像,就是鸭子。
-------------------------
if __FILE__ == $0
__FILE__存有现在运行的脚本的文件名字,$0是启动脚本的名字。上面的语义:当运行的脚本是启动脚本时,才执行下面的代码。这样有个好处:如果脚本是被调用时使用时,可不执行这里的内容。
--------------
引子:更深的概念点 代码块/yield/模块/mixins等
相关推荐
在二十分钟的Ruby入门教程中,我们将快速浏览Ruby的基础知识,包括语法、数据类型、控制结构以及简单的类定义。 首先,让我们从Ruby的基本语法开始。Ruby的注释以`#`字符开始,一直持续到行尾。例如: ```ruby # 这...
#### 20分钟体验Ruby 官方提供的快速入门教程,介绍Ruby的基本特性和语法,适合没有编程基础的新手。 #### Ruby课程 阿里云大学提供的Ruby课程,覆盖从基础到进阶的内容,适合希望深入学习的开发者。 #### Ruby...
成功搭建 Ruby 运行环境为您展开 Ruby 体验大门 在学习 Ruby 语言时,首要任务就是搭建 Ruby 的运行环境。只有当运行环境搭建完成后,才能找到符合以往开发习惯的 IDE 工具、看一看入门的例子、学习语言相关的知识...
Ruby语言设计之初就非常注重开发人员的编程体验,它拥有自然、表达性强的语法,易于阅读和编写,因而备受广大开发者的喜爱。Ruby语言非常强调代码的可读性和简洁性,因此它在Web开发、尤其是Web框架Ruby on Rails中...
这三份文档——ruby20-stdlib.chm、ruby20-core.chm、ruby20.chm,可能分别涵盖了Ruby 2.0的标准库、核心库以及整个语言的通用信息: 1. `ruby20-stdlib.chm`:很可能包含了Ruby 2.0标准库的详细文档。Ruby的标准库...
这为Ruby开发者提供了更直观、更无缝的体验,同时也减少了跨语言交互的复杂性。纯Ruby实现也意味着更少的依赖项,简化了安装和部署流程。 **2. OpenCL支持** 除了纯Ruby评估器,Ruby-TensorStream还支持OpenCL评估...
通过学习,你将能够编写出高效、易读的代码,并体验到Ruby带来的编程乐趣。无论是Web开发、自动化任务还是数据分析,Ruby都能提供强大的支持。所以,让我们开始这段旅程吧,一起揭开Ruby的神秘面纱。
对于希望快速体验 Ruby 的用户,可以使用在线平台来尝试编写和运行 Ruby 代码,而无需安装任何本地环境。这种方式非常适合初次接触 Ruby 或者希望快速测试某些概念的用户。 #### 本地环境搭建 为了能够长期使用 ...
Ruby-Mobility是一款强大的、可拔插的Ruby翻译框架,专为解决多语言支持而设计。这个框架的主要目标是提供一种灵活、高效且易于集成的方式来处理应用中的国际化(i18n)问题。Ruby-Mobility的核心设计理念在于解耦...
**Ruby-irbtools:提升你的Ruby交互式编程体验** Ruby IRB(Interactive Ruby)是Ruby语言的标准交互式shell,允许开发者在运行时测试代码、探索类库和调试程序。然而,IRB本身的功能相对基础,对于一些高级的开发...
从那以后,我一直享受着不间断的愉悦Ruby编程体验。这部分归功于我学习这门语言的质量来源。我并非唯一一个说过每种语言都应该有这样的书的人。” - **Ryan Davis**(Seattle.rb创始人)认为:“《Pick Axe》让我...
Ruby-Yard是一款专门为Ruby语言设计的强大文档工具,旨在帮助开发者更高效、更规范地生成和管理他们的代码文档。它的核心特性在于提供了一种简洁而强大的方式来解析Ruby代码中的注释,将这些注释转化为结构化的文档...
OAuth 2.0的设计目标是简化开发者的使用,同时提高安全性和用户体验。 OAuth 2.0流程主要包括以下几个步骤: 1. **授权请求**:用户通过客户端(如应用)被引导到授权服务器,请求访问权限。 2. **用户授权**:用户...
Ruby是一种面向对象的、动态类型的编程语言,以其简洁、优雅的语法和强大的元编程能力而闻名。本教程针对初学者,旨在帮助读者快速掌握Ruby的...通过学习,你不仅可以掌握Ruby的基础知识,还能体验到编程的乐趣和效率。
- David Deryl Downey即使不经常研究Ruby内部,也认为本书是一次极好的阅读体验。 ##### 书籍价值 - **理论与实践结合**:不仅提供了理论上的解释,还提供了丰富的实际案例,使读者能够将所学应用于实践中。 - **...
Ruby是一种高效且灵活的面向对象编程语言,由日本的松本行弘(Yukihiro Matsumoto)于1995年创建,旨在提供一种易于理解、简洁且强类型的编程体验。它的设计理念是结合Smalltalk的面向对象特性、Perl的文本处理能力...
7. **Ruby调试器改进**:内置的调试工具如`pry`和`byebug`在Ruby 2.1.6中得到增强,提供了更好的交互式调试体验。 8. **安全的动态类型**:虽然Ruby是动态类型语言,但2.1版本开始,引入了更严格的类型检查,如`...
Ruby-Puma是一个高性能、轻量级且并发的Web服务器,专为Ruby编程语言设计。它在Ruby社区中广泛用于构建Web应用程序,特别是与Rails框架一起使用。Puma的设计目标是提供稳定、快速和易于管理的服务,同时保持低内存...
通过Raven-Ruby,你可以有效地管理和解决你的Ruby应用程序中出现的错误,提高开发效率,提升应用的稳定性和用户体验。在实际项目中,结合持续集成和自动化测试,Raven-Ruby可以帮助你构建出更加健壮和可靠的软件系统...
解压"ruby2.6.1.zip"后,你可以得到"ruby-2.6.1"目录,里面包含了完整的Ruby 2.6.1源码、预编译二进制文件、安装脚本以及相关的文档。由于这是一个zip版本,解压后可以直接使用,无需安装过程,这对于开发者来说是一...