ruby学习笔记
1、命名约定
a. 局部变量、方法参数、方法名称 都必须以小写字母或下划线开始。
b. 类名称、模块名称和常量名称 都必须以大写字母开始。
c. 全局变量前缀$, 类变量前缀@@ , 实例变量前缀@
d. 从初始字符之后开始,名称可以是字母、数字、下划线的任意组合(但是跟在@符号之后的符号不能是数字)
e. 方法名称可以?、!、=字符结束
惯例:
a. 包含多个单词的实例变量名称,词与词之间用下划线连接
b. 包含多个单词的类变量名称,使用混合大小写(每个单词首字母大写)
2、基本的一些知识
a. 打印输出 puts,print。puts自带换行 print不换行
b. 单引号(')和双引号("")表示的字符串不一样,双引号可以解析字符串里的变量及转义符(比如\n换行)
"hi,#{name}" 引用局部变量name
"hi, #@myname" 引用实例变量myname
"hi, #$user_name" 引用全局变量user_name
"hello,#{$user_name.capitalize}" 花括号可以直接引用局部变量,也可以用于复杂的表达式
c. 全局变量是私有的,只能通过方法读写
d. 方法调用的括号可以省略
e. 方法的返回值可以不用return表达式,最后一个表达式的值也会作为方法的返回值
f. 单行注释以#开始(当然字符串里面的#就不是的)
ruby类示例:
class AA
$user_name = 'jason'
def say_hi
"hi, #$user_name"
end
end
调用示例 puts AA.new.say_hi
AA.new 表示创建(实例化)对象
f. 空的表示 nil是一个对象,表示空(即指没有任何东西)
3、数组与散列表
a. 数组 与 散列表都是存储对象的集合,都是通过键来访问,可以存储任何对象。
b. 数组的键是整数,而散列表可以用任何对象作为键。
c. 数组下标以0开始,散列表的键是唯一的(不能重复)
d.数组高效,散列表灵活。
数组:
arr = [1, 'cat',3.14] #一个含有三个不同对象元素数组
获取:
arr[0] —> 1
arr[1] —> 'cat'
arr[2] —> 3.14
简单方法创建数组
arr = ["aaa","bbb","ccc"]
可以写为:
arr = %w(aaa bbb ccc)
散列表:
map = {}
map = Hash.new
map['name'] = 'zhangsan'
map2 = {
'name'=>'lisi',
'age'=>20
}
获取:
map2['name'] ——> 'lisi'
map2['age'] ——> 20
4、控制结构
if 条件
满足条件1语句
……
elsif 条件2
满足条件2语句
……
elsif 条件N
满足条件n语句…
else
其他...
end
while 条件
满足条件执行的语句内容...
end
5、语句修饰符
当控制结构的表达式只有一条语句,可以使用语句修饰符,更加方便
例如
if score > 60
puts "good"
end
可以写为 puts "good" if score > 60
square = 2
while square < 10000
square = square * square
end
可以写为
square = 2
square = square * square while square < 10000
6、使用正则表达式
/aa|bb/ 匹配aa或bb字符串
=~ 匹配操作符,可以用于正则表达式匹配。
如果在字符串中发现了模式,=~匹配操作符返回模式的开始位置,否则它返回nil
if line =~ /aa|bb/
puts "字符串中包含aa或bb"
end
line.sub(/aa/,"bb") #用bb替换第一个aa
line.gsub(/aa/,"bb") #用bb替换所有的aa
line.gsub(/aa|bb/, "cc") #用cc替换所有的aa或bb
7、BLOCK代码块
def test
puts "start"
yield
yield
puts "end"
end
调用
test { puts "hi, girls"}
输出:
start
hi,girls
hi,girls
end
a. 如果test方法有参数,可以写在代码块之前,比如test(参数){代码块}
b. yield调用执行传入的代码块,如果未传递则报错
c. 代码块有两种写法,一种是单行的{…},另外一种是do … end可以用于多行。约定俗成一般单行用花括号,多行用do...end
d. 代码块可以包含参数,用|参数1,参数2|表示,例如:
def test
yield("hello",99)
end
test {|str,num| … }
8、迭代器
['a','b','c'].each{|name| puts name," "}
5.times { print '*'}
2.upto(6) {|i| puts i}
('a'..'e').each(|char| puts char)
9.输入输出
输出函数:
a) puts
b) print
c) printf
puts 输出参数,并且每个参数后面都加一个换行符,而print不加。比如puts "a",”“
printf 相比print可以做格式化输出,比如printf("Number is %5.2f,\nString is %s", 1.354,'hello')将输出
Number is 1.35,
String is hello
输入函数:
gets
比如
line = gets
puts line
gets函数会在末尾包含一个\n换行符
相关推荐
下面是学习 Ruby 的一些实用建议:首先,了解 Ruby 的基本概念和语法。 Ruby 是一种面向对象的语言,具有简洁的语法和强大的功能。了解变量、数据类型、运算符、控制结构、函数和对象等基本概念。其次,选择合适的...
标题中的"ruby笔记1ruby笔记1ruby笔记1"暗示了这是一份关于Ruby编程语言的学习笔记,可能包含了作者在学习过程中的重点、难点以及心得体验。描述中的内容重复了标题,进一步强调了这是关于Ruby的深入学习记录。标签...
通过以上介绍,我们了解了Ruby的基本概念、安装方法以及一些常用的基础语法。Ruby以其简洁的语法、强大的功能和灵活的面向对象特性,在Web开发、自动化脚本等领域有着广泛的应用。对于初学者来说,掌握这些基础知识...
### Ruby元编程基础学习笔记整理 #### 一、语言构建(Language Constructs) 在Ruby中,诸如变量、类和方法等元素统称为语言构建(Language Constructs)。这些构建块是构成Ruby程序的基础。 ##### 示例代码分析 ```...
这份"Ruby学习资料(含参考手册和Programming Ruby)-中文.rar"压缩包包含了一系列的资源,帮助初学者和进阶者深入理解Ruby语言。 首先,"ruby中文文档(含参考手册和Programming Ruby).chm"是一个综合性的中文参考...
本资源“学习 Ruby 的笔记以及 Demo.zip”显然包含了关于Ruby编程的学习资料和一些实际示例代码,旨在帮助初学者理解并掌握Ruby的基础及进阶特性。 首先,让我们深入了解一下Ruby的核心特性: 1. 面向对象:Ruby是...
综上所述,Ruby on Rails的笔记内容涵盖了从安装Rails环境到创建和运行一个简单的Rails项目的基础知识,这些内容对于初学者来说是学习Rails框架的极好入门材料。通过对这些知识点的学习,初学者可以快速了解Rails的...
通过阅读《Ruby on Rails笔记》,我们可以了解到作者对于Ruby on Rails学习过程中的深入理解和实践经验。这份笔记不仅是一份学习指南,也是对Rails初学者来说非常有价值的参考资料。无论是想要从零开始学习Rails,...
在“ruby-on-the-way”资料包中,可能包含了各种教程、代码示例、练习项目和笔记,这些都是学习过程中不可或缺的部分。Git的提及意味着这份资料可能还包括了如何使用版本控制系统来管理代码的知识,这对于团队协作和...
理解类和对象的关系,以及如何定义和继承类是学习Ruby的基础。 2. **方法与块(Methods and Blocks)**:Ruby中的方法是用来封装代码的结构,可以被对象调用执行特定任务。块是Ruby的另一大特色,类似于匿名函数,...
### Extjs 5 学习笔记之 SenchaCmd 深入解析 #### 一、SenchaCmd 的简介 SenchaCmd 是一个跨平台的命令行工具,它为基于 ExtJS 和 Sencha Touch 应用程序的开发周期提供了全面的支持。从创建应用程序的基础结构到...
了解它们的用法和作用域是学习Ruby的基础。 接着,Ruby的核心在于它的面向对象特性。一切皆为对象,每个对象都有其类,类定义了对象的行为和属性。类通过`class`关键字定义,可以通过`new`方法创建对象。类还可以...
通过这个压缩包中的学习笔记,你可以深入了解这些特性,以及如何在实际项目中利用它们。此外,还可能包含关于错误处理、内存管理、并发编程、设计模式和最佳实践等方面的内容,这些都是Java开发者必备的知识。 为了...
你可以通过这个源码了解Kramdown的内部实现细节,学习如何扩展或修改其功能,甚至为项目贡献代码。 总的来说,Ruby-Kramdown是Ruby开发者处理Markdown文档的理想工具,它既保留了Markdown的易读性,又提供了丰富的...
### Solr学习笔记_v1.1 - 高性能搜索引擎的核心参数与查询语法详解 #### 一、Query参数:深入理解Solr查询的核心要素 Solr作为高性能的全文搜索引擎,其强大的查询能力很大程度上依赖于一系列精细调整的参数。以下...
在本篇ROR(Ruby on Rails)学习笔记中,我们将深入探讨如何在Windows XP操作系统上进行环境的安装和配置。Ruby on Rails是一个流行的开源Web应用框架,它基于Ruby编程语言,以其“DRY”(Don't Repeat Yourself)...
本书适合已经了解HTML、JavaScript和CSS,并且对Ruby基础语法有所认识的开发者。即便读者没有Ruby和Rails的使用经验,本书也准备了从安装Ruby环境到完成Rails项目的所有步骤。 在Ruby on Rails开发环境中,Rails...
"后端语言的学习笔记.zip"这个压缩包很可能包含了关于各种后端编程语言的学习资源,特别是那些用于构建动态网站和Web服务的语言。尽管没有具体的标签提供额外信息,我们可以推测这可能涵盖了诸如Java、Python、Node....
在“WEB学习笔记第三期关于JavaScript的内容”中,我们可以看到一些与图像、多媒体处理以及文本格式化的相关知识。 1. **图像处理**: - 默认情况下,图像没有边框,但可以通过CSS设置边框样式。若未设置链接,...