没有合适的资源?快使用搜索试试~ 我知道了~
ruby学习笔记....................
资源推荐
资源详情
资源评论
语法
注释
1)单行注释:以#开头,如: #注释内容
2)多行注释:在=begin 和 =end 之间定义,如:
=begin
注释内容
=end
分隔符
分号; 用来分隔一行中的多个语句
() 提高优先级;方法参数列表
空格 分隔字符;在可省略()的地方,代替()
逗号, 隔开多个参数
点. 将对象与它的方法隔开
:: 域作用符,将模块(类)与它的常量隔开
变量
变量类型 描述 示例
局部变量(或伪变量) 以小写字母或下划线开头 var _var
全局变量 以$开头加小写字母 $var
类变量 类中定义,以@@开头加小写
字母
@@var
实例变量 对象中定义,以@开头加小写
字母
@var
常量 以大写字母开头 Var
变量赋值
x = 100
y = 200
z = 500
x = 12 # assignment
x += 1 # abbreviated assignment add
x -= 1 # abbreviated assignment subtract
x *= 2 # abbreviated assignment multiply
x /= 2 # abbreviated assignment divide
并行赋值
x, y, z = 100, 200, 500
a, b, c = "cash", 1.99, 100
内插变量: 在双引号内使用“#{变量名}”内插变量
a = 2
b = 3
puts "#{a} + #{b} = #{a+b}" #输入结果为:2 + 3 = 5
数值操作
符号 描述 示例
+ 加 puts 3 + 4
- 减 puts 4 - 3
* 乘 puts 3 * 4
** 次方 puts 2 ** 2 #2 的 2 次方
puts 2 ** 3 #2 的 3 次方
/ 除 puts 4 / 2
% 取余 puts 5 % 2
条件语句
if 形式 unless 形式
a = 1 if y == 3 a=1 unless y != 3
x = if a > 0 then b else c end x = unless a <= 0 then a else b end
if x < 5 then
a =1
else
a =2
end
unless x < 5 then
a =2
else
a =1
end
使用三元运算符
label = (length == 1 ? " argument" : " arguments")
Ruby 里,nil 和 false 为假,其它都为真.
case 语句
case x
when 1..10 #匹配数字
puts "First branch"
when foobar() #批量方法返回的值
puts "Second branch"
when /^hel.*/ #匹配正则表达式
puts "Third branch"
else
puts "Last branch"
end
循环结构
#while 循环
i= 0
while i< list.size do
print list[i]
i += 1
end
或
i=0
begin
print list[i]
i += 1
end while i< list.size
#until 循环
i= 0
until i == list.size do
print list[i]
i += 1
end
或
i= 0
begin
print list[i]
i += 1
end until i == list.size
#for 循环
for x in 1..10 do
print x
end
#each 循环
list.each do |x|
print x
end
#loop 循环
i = 0
n = list.size-1
loop do
print list[i]
i += 1
break if i > n
end
#times 循环
n = list.size
n.times do |i|
print list[i]
end
#upto 或 downto 循环
n =list.size–1
0.upto(n) do |i|
print list[i]
end
n.downto(0) do|i|
print list[i]
#each_index 循环
list.each_index do |x|
print list[x]
end
end
在循环体内:
break 跳出当层循环;
next 忽略本次循环的剩余部分,开始下一次的循环;
redo 重新开始循环,还是从这一次开始;
retry 重头开始这个循环体。
字符串
定义并赋值:
astr=“If a man does not keep pace with his companions, perhaps it is because he
hears a different drummer. ”
astr[37..46] # => "companions"
如何下标为负数,则从末尾数回来
astr[-8..-2] # => "drummer"
title = String.new( "Much Ado about Nothing" )
title.empty? # => false
title.length # => 22
单引号和双引号的区别:单引号不处理转义字符,而双引号则会解析转义字符。如:
解析转义字符\n
lear = "King Lear\nA Tragedy\nby William Shakespeare"
puts lear
输出:
King Lear
A Tragedy
by William Shakespeare
不解析转义字符\n
lear = 'King Lear\nA Tragedy\nby William Shakespeare'
puts lear
输出:
King Lear\nA Tragedy\nby William Shakespeare
连接字符串
"Hello," + " " + "Matz" + "!" # => "Hello, Matz!"
"Hello, " << "Matz!" # => Hello, Matz!
Hello, ".concat "Matz!"
s = %q[abc]
s = %Q[abc]
s = %q(abc)
s = %q{abc}
s = %q<abc>
s = %q:abc:
s = %q*abc*
上面这些都是合法的字符串表达方式。当使用%q 或%Q 符号表示字符串时,界定符可以是任
何成对界定符([]、<>等)或非数字、非空格、可打印的非成对单字符(:、#、@等)。
here-document
对较长的多行字符串,可以使用 here-document 来的方式表示:
str = <<EOF
Once upon a midnight dreary,
While I pondered weak and weary,...
EOF
<<符号后面接一个结束符,用来标识在两个结束符之间的内容为字符串 str 的内容。
默认时 here-document 为一个双引号标识的字符串,这样可以在字符串里嵌入\t,\n,#{}
等特殊符号并计算其值。而我们可以显示指定单引号的结束符来让我们得到一个单引号标识
的字符串:
str = <<'EOF'
This isn't a tab: \t
and this isn't a newline: \n
EOF
默认时在结束符前加空格缩进或者在结束符后加空格的话,here-document 不会认为这是合
法的结束符。但是我们可以使用<<-来删除结束符前面的空格缩进,但不会删除后面的空格
和其他行的缩进:
str = <<-EOF
Each of these lines
starts with a pair
of blank spaces.
剩余75页未读,继续阅读
资源评论
eneasy
- 粉丝: 3
- 资源: 18
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功