RUBY学习总结

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Ruby学习总结

第一章

1.3.1换行符与\

目标输出

hello,

ruby

!程序可以写

print(“hello,\n ruby\n!\n”)

也可以这么写

print(“hello,

ruby

!

”)两种输出相同,但第一种比第二种效率要高。

1.3.2‘’与“”

单引号会原封不动的把转义字符输出print(‘hello,\n ruby\n!\n’)输出结果hello,\n ruby\n!\n在单引号里\\转义为\

1.4方法调用

方法调用可以省略(),也可以用逗号,表示输入多个参数。

1.7中文使用

中文使用#encoding:例如#encoding:GBK 1.9变量

使用#{}在双引号字符串中放入变量area=’中国’

print‘我是#{area}人’输出:我是中国人第二章

2.1.7数组的循环

数组.each do|变量|

end example:

names=[“小林”,”小Y”] names.each do|name| print"#{name}""\n" end

do~end之间部分称为块,块的另一种写法names.each{|name| print"#{name}""\n" }

2.2散列

address={name:"高桥",pinyin:"gaoqiao",:postal=>"123456"}

2.2.1符号

创建符号,只需要在标识符的开头加上:就可以了。

符号与字符串之间的区别

1.字符串和符号,都是Ruby中表示文本的方式

不管字符串变量也好,符号变量也好,都是用来表示文本的,它们之间,也可以互相转换(通过to_sym和to_s):>>"book".to_sym

=>:book

>>:track.to_s

=>"track"

2.相同的符号是一个对象,相同的字符并不一定是一个对象

这就是符号和字符串最大的差别,符号是不可变的,不能对一个符号进行修改。所以说,两个看起来相同的符号一定是一个对象,但是说两个看起来一样的字符串是一个对象,就不对了。

这里,我们用equal?方法检验这一点,当两个对象相同时,equal?返回true,反之是false:

>>:book.equal?(:book)

=>true

>>"book".equal?("book")

=>false

3.处理符号相比字符串,占用更少的资源

这也就是为什么有些时候我们要使用符号的原因,由于字符串变量必须具有各种修改其内容的功能,所以字符串的维护和处理的开销就很大,但是有些时候,我们并不需要修改和处理创建的文本信息,这个时候用符号再好不过了。

比较典型的用法,就是在Rails中,用符号来指代散列中的参数名称:<%for article in@articles-%>

<%=link_to article.title,

:controller=>"article",

:action=>"show",

:id=>article.id%>

<%end-%>

反之,如果我们把:controller写成"controller",把:action写成"action",吧:id 写成"id",每一个循环都要创建3个新的字符对象,但是我们又不需要对这些字符串进行修改操作,白白添加了很多处理器开销,而且写成符号的形式更加简练,可以更容易分别出参数和值,何乐而不为呢。

2.2.2散列的创建

address={“name”=>"高桥",pinyin:"gaoqiao",:postal=>"123456"}

对象方式:对象(键)=>对象(值)例如:“name”=>"高桥"

符号两种写法:1、pinyin:"gaoqiao"

2、:postal=>"123456"

2.2.3散列的使用

散列名[键]=希望保存的对象

2.2.4散列的循环

散列.each do|key,value|

//do some thing

end

散列.each{|key,value|

//do some thing

}

第四章对象、变量和常量

4.3变量

变量的命名方式决定了变量的种类

局部变量

以英文字母或者_开头

全局变量

以$开头

实例变量

以@开头

类变量

以@@开头

类变量被类的所有对象所共享,它与类方法相关联,对一个给定的类来说,类变量只存在一份拷贝。类变量由两个@符开头,例如@@count。与全局变量和实例变量不同,类变量在使用之前必须被初始化。通常,初始化就是在类定义中

的简单赋值。

例如,我们的点唱机可能希望记录每首歌被播放的次数。这个数目可能是Song对象的一个实例变量。当一首歌被播放时,实例中的值增加。但是,假如我们还想要了解下一共播放了多少首歌。通过搜索所有Song对象并累加它们的播放次数,或者冒天下之大不韪使用全局变量来完成统计;或者,让我们使用类变量。

class Song

@@plays=0

def initialize(name.artist,duration)

@name=name

@artlist=artist

@duration=duration

@plays=0

end

def play

@plays+=1#same as@plays=@plays+1

@@plays+=1

"This song:#@plays plays.Total#@@plays plays."

end

相关文档
最新文档