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笔记1ruby笔记1ruby笔记1ruby笔记1ruby笔记1ruby笔记1
0积分下载,不允许系统调分-20211115 ruby官方安装包
ruby1.9.2_1.9.2-p290-1_amd64.deb
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
ruby1-导出-1
ruby基础笔记,自学笔记,ruby基础语法非常全面ruby基础笔记,自学笔记,ruby基础语法非常全面
ruby-oci8-2.1.5-x86-mingw32.gem,ruby连接oracle数据库gem包
此安装包的版本是2.6.5-1-x64 如果您不知道要安装哪个版本,并且开始使用Ruby,建议您使用Ruby + Devkit 2.6.X(x64)安装程序。它提供了最多数量的兼容gem,并与Ruby一起安装了MSYS2-Devkit,因此可以立即编译具有C...
这个暑假回家没事干闲...恩,废话就少提,下面我学习Ruby的各个部分。其中Ruby风格这一部分是开放的,因为我暂时还没有形成自己的风格。我用xmind来记笔记,因此我只是把笔记搬到博客上,看看下面的图。好有爱啊!!!
ruby-debug-ide-0.3.1.gem
rubyinstaller-devkit-3.0.2-1-x64 and Ruby 学习笔记.7z 由于国内访问github服务器不稳定,所以上传到CSDN给大家方便下载
Ruby,一种为简单快捷的面向对象编程(面向对象程序设计)而创的脚本语言,在20世纪90年代由日本人松本行弘(まつもとゆきひろ/Yukihiro Matsumoto)开发,遵守GPL协议和Ruby License。...该版本为ruby-1.8.7-p302
mingw32-ruby-1.9.1-wxruby-2.0.1-setup.exe
学习Ruby的笔记以及Demo源码.zip学习Ruby的笔记以及Demo源码.zip学习Ruby的笔记以及Demo源码.zip学习Ruby的笔记以及Demo源码.zip学习Ruby的笔记以及Demo源码.zip学习Ruby的笔记以及Demo源码.zip学习Ruby的笔记以及...
ruby2.6.3-1-x86解释器32位.exe,最新版版本,适合那些外网连接超慢的朋友下载,感谢csdn提供的存储服务
ruby-1.9.2-p290.tar.gz,ruby,redmin,安装,
ruby-1.8.7-p358-doc-chm.7z 3.65 MB 1,399 Other Other ruby-1.8.7-p358-i386-mingw32.7z 5.12 MB 1,503 i386 Other rubyinstaller-1.8.7-p358.exe 11.69 MB 13,534 i386 .exe (Windows executable)
ice最简单实现 ruby调用ice接口 - Ruby - language - ITeye论坛
ruby-irb-1.8.7.352-13.el6.x86_64.rpm ruby-irb-1.8.7.352-13.el6.x86_64.rpm