ruby学习笔记

发布 2021-05-01 20:57:28 阅读 6064

第一章: (ruby 入门) here --please try again."

end end

其中m 代表你调用的类中不存在的方法名,*args是你调用不存在方法传递的参数。

可以使用super关键字调用对象父类的同名方法,当 super省略参数时,将使用当前方法。

的参数来进行调用。如果传入的参数被修改再调用 super的话,那么将会使用使用修改后的值。

给对象定义特殊方法,该方法为该对象所特有,同属于同一类的其他对象却不含有该方法。

def 对象。特殊方法名 … end

当该对象有多个特殊方法时:

class <<对象

def 特殊方法名1 … end

def 特殊方法名2 … end

end当然该特殊方法也可以是类中存在的方法,实行覆盖机制,使得同一个类的不同对象调用同一个方法出现不同的行为。

列出类string 的所有方法。

列出 string实例的所有实例方法。

列出 string 实例的所有非继承的实例方法。

访问实例变量的两种方法,1、 定义方法操作实例变量。

class helloworld

def name读取权限。

return @name

enddef name= (value)

@name = value # 写入权限。

end end

2、使用快速定义方法,可简便设定多个变量的权限,减少麻烦,降低出错。

attr_reader :name 只定义用来读取的方法。

attr_writer :name 只定义用来写入的方法。

attr_accessor :name 定义用来读取与写入的方法(相当于定义上述两个方法)

注意:此处name是方法名,该方法是设定@name的读写。

类方法:(三种形式,1,2在类中定义,3,在类外定义)

1、 class helloworld

def print name," said hello." #这里name 是局部变量。

endend

2、 class helloworld

def 此语言的self可类比于j**a的this

print name," said hello."

endend

3、 class <

def hello(name)

print name," said hello."

endend

类变量:类变量是私有的,在类外无法直接访问,你只能通过实例方法和类方法去访问它。类变量在使用前必须初始化。

类内可以定义常数,该常数的用法同c++中类变量的用法即类名:常数名。

扩充类:即定义一个已经存在的类,在类中定义原有类中不存在的方法,即为该类新添的方法。

继承格式。class 类名 < 父类名。

类定义。end

方法权限:public(默认) ,private , protected ,构造方法恒是private

单个方法设定权限:在该方法后使用,如private :方法名。

多个方法设定权限:权限关键字后无实参,到下一个权限关键字处止都是该权限,如。

private方法名。

模块:模块与类的两大区别:

1、模块不能建立实例。

2、模块不能继承。

模块的两大代表用途:

1、模块可以类比于c#中的命名空间,避免名字冲突,使用时模块中的方法、常量时要加上模块名,即。

模块名。方法名(常量名)

也可使用 include 引进模块中的方法与常量,只要不引起冲突的话。此刻,就可以直接使用模块中的方法及常量了。

2、mix-in 方式,即在类中用include 将模块中的方法、常量纳入类中,当在两个类中同时纳入同样的模块时,就具有一定的相同功能。

此用法的使用场合是:

a,两个类只是具有相似的功能,并不想归类于相同的类型时。

b,调和ruby语言无法实现多继承带来的弊端。

定义自己的模块:

module 模块名。

模块定义。end

注意:当模块中的方法需要对外公开时,即可以使用模块名:方法名调用时,在此方法定义后需进行声明,语句为:

module_function :方法名。

第六章: (错误处理与例外) {

系统自行抛出例外的消息格式:

文件名:行号:in ‘方法名’:错误消息(例外类)

from 调用方法位置。

例外处理:格式, # begin (try) rescue (catch) ensure(finally)

begin有可能发生例外的语句。

rescue =>变量名此处变量用于存储例外对象,可以省略。

例外发生的处理措施。

ensure

一定执行语句。

endrescue 作为修饰符时:

运算式1 rescue 运算式2

意义:运算式1发生例外时,整个式子的值为运算式2的值。

当整个方法体为可能发生例外的语句时(即方法内容都在begin语句下),此时可以省略例外格式的begin 和 end。

指定要捕捉的例外:

rescue 例外类1,例外类2...变量名。

处理 rescue 例外类3> 变量名。处理。

在rescue处理逻辑之后可以加一个 else子句,只有没有任何异常发生的时候程序才。

会运行到那里,这种用法比较少见。

还可以在 rescue 部分中使用 retry。这时将从 begin 表达式开始重。

新执行。使用 retry可以在某处理过程成功之前,一直循环该处理过程。

引发例外,raise (例外类),(消息) #均可省略 ,无例外类时,默认引发runtimeerror例外。

RUBY学习笔记

ruby programming 向ruby之父学程序设计 笔记。单引号与双引号 单引号不会自动解析特殊符号,会将单引号之间的所有内容打印出来,如 p hello,ruby 就会打印出 hello,ruby 而双引号p hello,ruby 会打印出 hello,ruby puts 1 1 的效果也...

ruby学习之路

学习ruby最好的方法就是 源码包,里面带有sample和test,是入门学习的最好实例。我 的是2.1.0版本,首先。configure,然后make,sudo make install。从文件中可看出,包含有两类test test和test all,test主要是对sample 进行测试,tes...

as学习笔记

as学习笔记。彭禹,长江大学城市建设学院给排水10801班,200802417 1 动作面板 中动作赋予的基本步骤。2 实例 片头 动作赋予 帧 还是 对象 区别?1 如果赋予给帧,则新建as图层,在对应帧的下面插入空白关键帧,然后创建动作,动作创建后这一帧上面会出现一个 表示添加好了动作,最后在后...