博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ruby初级语法知识
阅读量:6858 次
发布时间:2019-06-26

本文共 1242 字,大约阅读时间需要 4 分钟。

‘’与""的区别:''处理的少,""处理的多,""可以加入#{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,如需转载请自行联系原作者
你可能感兴趣的文章
Composer 中国镜像地址配置
查看>>
比特币暴跌后的连锁反应
查看>>
Python爬虫入门教程 62-100 30岁了,想找点文献提高自己,还被反爬了,Python搞起,反爬第2篇...
查看>>
第80节:Java中的MVC设计模式
查看>>
区块链100讲:以实例形式深入浅出讲透BANCOR算法
查看>>
Java并发编程 深入剖析volatile关键字
查看>>
java生成MD5校验码及算法实现
查看>>
thymeleaf 学习笔记(转)
查看>>
Mac 升级 OpenSSL
查看>>
Python学习笔记(5)-if判断、if嵌套、判断小练习
查看>>
文本转换成音频流
查看>>
负载均衡之lvs
查看>>
C#之类与对象知识点
查看>>
斯坦福大学公开课机器学习:Neural network-model representation(神经网络模型及神经单元的理解)...
查看>>
七、集成swagger2
查看>>
Python(面向对象5——高级)
查看>>
chocolatey使用
查看>>
【转】iOS高级向的十道面试问题
查看>>
昂贵的聘礼 poj 1062 Dijkstra
查看>>
Hadoop HA的搭建
查看>>