ruby初级语法知识

简介:
‘’与""的区别:''处理的少,""处理的多,""可以加入#{expression},如果expression是一个实例变量类变量或者是全局变量,{}可省略。
全局变量$开头,实例变量@开头,类变量@@开头
类名,模块名,常量以大写字母开头,用驼峰表示法写如class KaraokeSong
@之后不能跟数字
实例变量用_把单词隔开
方法名可以以?!=字符结束
数组和散列表
数组中a=%{ant bee cat dog elk}访问a[0],a[1]...
用%可以省略''和逗号
散列表中a={'key1'=>'value1','key2'=>'value2','key3'=>'value3'}
key必须唯一,访问方法:a['key1']->value1
控制结构:
if ; while
if expression
       action
end
while expression
      action
end
-----------<=>
action if expression
action while expression
正则表达式/.../:
/a+b/--------1个或多个a后是b(并不是以b结尾)
/a*b/-----------0个或多个a后是b(并不是以b结尾)
\s匹配空白符(如空格符,制表符,回车等等)#space
\d匹配任何数字            #digital
\w匹配会出现在一个词内的任何字符       #word
. 匹配几乎任意字符
使用regexp: =~来得出是否匹配
例:if line=~/.../
...
sub 和 gsub(substitution)替换命令,用法:
line.sub(/perl/,'ruby')用ruby替换第一个'perl'
line.gsub(/perl/,'ruby')用ruby替换所有的'perl'
#Block和迭代器
单行block用{},多行用do..end
用法:
def call_block
  puts "start of method"
  yield
  yield
  puts "End of method"
end

call_blcok {puts "in the block"}
输出:start of method
in the block
in the block
End of method
yield还可以调用参数传递给block,
def call_block
yield("hello",99)
end

call_block {|str, num| action use the arguments}

block实现迭代器(iterator)
数组.each {|arg| ...}
5.times {action}
3.upto(6) {action}




本文转自 fsjoy1983 51CTO博客,原文链接:http://blog.51cto.com/fsjoy/63951,如需转载请自行联系原作者
目录
相关文章
|
8月前
|
存储 前端开发 JavaScript
前端学 Ruby:熟悉 Ruby 语法
前端学 Ruby:熟悉 Ruby 语法
28 0
|
2月前
|
Ruby
|
2月前
|
Ruby
|
2月前
|
Ruby
|
2月前
|
Ruby
|
Ruby Python
红袖添香,绝代妖娆,Ruby语言基础入门教程之Ruby3基础语法,第一次亲密接触EP01
书接上回,前一篇我们在全平台构建好了Ruby3的开发环境,现在,可以和Ruby3第一次亲密接触了。 Ruby是一门在面向对象层面无所不用其极的解释型编程语言。 我们可以把编写Ruby代码看作是一场行为上的艺术,编码就像跳舞一样,Ruby的每一步都很优雅,几乎没有一步是多余的。
红袖添香,绝代妖娆,Ruby语言基础入门教程之Ruby3基础语法,第一次亲密接触EP01
|
存储 对象存储 Ruby
Ruby Programming | 连载 02 - Ruby 语法基础
Ruby Programming | 连载 02 - Ruby 语法基础