前两天跟着书,开始自学RUBY和ROR,开始笔记之,开始感受小日本的ROR如何牛B法
安装ruby后看版本:ruby -v
安装rails:gem install rails 3.0.3
gem install rails --include-dependencies(记得cross gfw)
验证安装rails -v
2 手动编译
ruby d:\xxxx\xxx.rb
语法检查 ruby -c xxx.rb
打开警告 -w
执行字面脚本 ruby -e 'puts "hello"',单引号中的是语句,多个语句用分号
3 获得输入number1=gets将用户输入保存到number1变量中去
4 常量:全部大写;
局部变量:以小写字母或者下划线开头
全局变量:以$开头
5 RUBY中三大基本数据型:数值型,范围型,符号型
1)数值型
大于2的30次方为bignum;小于的为fixnum
2)范围型
a..b:定义的是从值a到b的范围,包括a,b,以及值a,值B中间的值
a...b:定义的是从值a到b的范围,包括a,b,以及值a,值B中间的值,不包括值b
有相关的方法:a=0..59
找最小: a.min
找最大:a,max,找最后一个值a.end,第一个a.first,判断是否有这个值
a.include?100(看范围a中是否有值100)
3)regect:将范围转为数组,并删除条满足条件元素
select:将该范围转为数组,只选择满足条件的
each:输出每个范围的每个元素
比如:count.reject(|i|i<15);
count=1..20;
count.each do|i|
puts i.to_s
end
4)符号对象 ,比如
abc="dddd";
ly=:abc
puts ly==:"abc" 测试ly是否等于字符串abc所对应的符号对象
输出为true
字符串和符号对象的转换:
dcy="abc"
ly=:"abc"
puts dcy.to_sym==ly
puts ly.to_s==dcy 都输出 true
也可以通过%s{dcy}来创建符号对象
6) 算术运算符
**乘方运算,比如2**3=8
7) <=>:比较两个对象,如果左边对象小于右边,返回-1;如果左边对象等于右边,返回0,如果左边对象大于右边,
范围1
8)表达式并行赋值
比如C,D="HI","HELLO"
交换的话
c,d=d,c
则C变为D,D变为C,如果任何一方的变量多于另外一方,则多余一方的设置为nul
嵌套赋值
test=["a","b","c","d"]
b,(c,d),e=test
则b="a" (c,d)="b" e="d" 而d=null
SHE=["a","b","c]
flh=['123","456","658","erer"]
S,H,*E=flh
则s=123,h=456,E=(658,erer)
又如a,(b,*c),d="S",["H","E"]
括号对括号的原则,则a=S,(b,*c)=[H,E],d=null,b=H,c=E
9) 注意,是if then
elsif ....
else
end
10) unless语句
unless 条件 then
代码块1
else
代码块2
end
当true时,执行else语句块代码,为false时,才执行then的代码
11)case xxxx
when xxxx
when xxxx
else
end
12) for..in语句
shujuaray=["xxx","xxx"...]
for shuju in shujinarray
put shuju
end
angle=("xxx"=>abc,"ddd"=>dfdff)
for key,value in angle do
put key+"指的是"+value
end
13) 迭代器
names=["xxx","xxxx","dfdf","xxcx]
names.each do |name|
puts name
end
14) NEXT,跳出本次循环
15)单引号,双引号都可以用来表示字符串,其区别为:如果是单引号的话,原样输出字符串中的东西,双引号的话
,如果字符串中有特殊字符,则进行真实的转义,比如
a="电风扇发射点\n大师傅似的\s....."
b='adadasdsd:\n....\s'
16) 字符串操作:
a<<b,将b串永久加到a串后
puts "#{a}#{b}"
重复次数:puts "#{a}#{b}"*3//重复连接3次
复制字符串:dup只复制字符串内容,clone复制字符串并继承其特殊方法
获取子字符串str="abcsdds",str[4,5]为获得字符串,字符串位置从0开始
17) 哈希:
person=Hash.new
person["name"]=xxxxx
18) 数组
FOOD=["XXX',"DDD","XXX"....]
food=Array.new
food[0]=xxxx food[1]=xxxxx
对包含特殊字符或者空格的字符串转为数组,比如
str=%W{ABC\S DSDSD\S SDSD\S\SDD}
str=%w{ABC\S DSDSD\S SDSD\S\SDD}
则%W 会 ABC DSDSD SDSD SDD
%w 会 ABC\S DSDSD\S SDSD\S\SDD
unshift():向数组头部添加数组元素
push():向尾部添加元素
<<向数组尾部添加一个数组元素
19 类型转换
to_s:转字符串 to_i:转为整数 to_f:转为浮点
20 类的创建
类名第一个要大写字母,否则出错;要创建对象
a=类名.new
self:默认类本身
可以定义同名的类2次,然后方法会合拼,但不建议使用。
嵌套类 比如A::B,为B类在A类中了。
21 特殊类
为某个特定的对象追加方法和属性,这些方法和属性封装到一个类中直接追加到对象中,类没特定的类名。比如
class Animal
end
a=Animal.new
class <<a
.....
end
21 def 方法:
def xxxx()
return
end
22 特殊方法
class Dog
end dog=Dog.new
def dog.show .....end
直接为类的实例添加了方法
23 类方法
class Dog
def Dog.show
.....
end
end
Dog.show
24 类的实例变量用于类内部共享数据。用@符号开头,而类变量可以在各个类之间共享数据
而类变量,用@@定义,可以在多个类中共享变量
25 属性读取器
class Person
def name
@name
end
end
26 属性定义标识符
attr XXXX,TRUE 设置某个XXX属性为可写,false为只读
attr_reader 属性1,属性2....设置多个属性为只读
attr_writer 属性1,属性2....设置多个属性为可写
attr_accessor 属性1,属性2.... 设置多个属性为可读写
27 代码块
比如do
//代码块内容
end
def say
.....
yield //则这里会调用代码块中的内容
end
say do
puts
end
28 类的继承:class 子类<<父类,类的构造方法命名为initialize
20 class A
end
a=A.new
如何通过a象JAVA反射那样得到A,可以这样:#{a.class}
分享到:
相关推荐
这两个数据集的难度相对较大,因为类别的数量多,图像尺寸小,这使得它们成为评估深度学习模型在图像识别上的有效性的重要基准。 **ResNet和Ror模型在CIFAR数据集上的表现** 在CIFAR-10上达到89%的准确率,以及在...
**初探ROR** Ruby on Rails(简称ROR)是一个基于Ruby编程语言的开源Web应用程序框架,它遵循MVC(模型-视图-控制器)架构模式,旨在促进...通过学习和实践,你将能够利用ROR构建出功能强大、易于维护的Web应用程序。
### Windows上搭建Ruby on Rails(ROR)环境详解 #### 一、引言 随着Web开发技术的不断发展,Ruby on Rails(简称Rails或ROR)作为一种高效、简洁且优雅的Web开发框架,受到了广大开发者的青睐。然而,在Windows...
1. **MVC架构**:RoR采用模型-视图-控制器(MVC)设计模式,分离了业务逻辑、数据模型和用户界面,使得代码组织有序,易于维护。 2. **ActiveRecord**:这是RoR中的一个ORM(对象关系映射)库,允许开发者用Ruby类来...
标题 "基于sqlite的ror例子" 暗示我们即将探讨的是如何在Ruby on Rails (RoR) 应用程序中使用...通过学习这个例子,开发者可以深入理解RoR如何与SQLite数据库协作,这对于初学者和有经验的开发者都是宝贵的学习资源。
总结来说,基于Ruby on Rails的在线考试系统开发是一项综合性的任务,涉及后端逻辑、数据库设计、用户交互等多个层面。通过合理利用RoR的特性,我们可以构建出功能完善、易用性强、安全性高的在线考试平台,为教育...
IRIS-RoR-Bootcamp-2020 由于大多数参与者都不熟悉Ruby,因此我们创建了一些练习来学习和练习Ruby语法-涵盖条件语句( if , else , elsif ),不同的迭代方式( each , select和map )以及面向对象的基本代码...
本报告旨在总结2006年8月底之前的Ruby on Rails(简称ROR)在中国的应用和发展现状,侧重于描述而非深度分析。报告计划随着ROR在中国的发展而不断更新,未来版本可能会引入更加科学严谨的数据收集方法,例如问卷调查...
### ARM指令集学习知识点 #### 一、ARM指令集概览 ARM(Advanced RISC Machines)指令集是一种基于精简指令集计算机(RISC)架构的指令集标准,广泛应用于移动设备、嵌入式系统等领域。本章节将详细介绍ARM指令集的...
4. **逻辑运算指令**:如AND、OR、XOR用于逻辑操作,NOT用于取反,TEST用于测试,SHL、SAL、SHR、SAR用于位移,ROL、ROR、RCL、RCR用于循环移位。 5. **其他指令**:如CBW、CWD、CWDE、CDQ用于数据转换,它们根据...
总结来说,通过上述高级指令的详细解析,我们可以了解到NAIS PLC中文手册第三章所涵盖的高级指令在数据位操作方面的强大功能和灵活应用,以及在编程时需要注意的规则和限制。这些知识点对于PLC程序员在实际应用中...
MUL1: ROR R12 ROR R13 ROR R14 ROR R15 DECR R16 BRNE MLOOP RET DIV16: LDIR R16, 16 ... ``` - **解析**:这些示例展示了16位乘法和除法的实现方式。16位乘法采用循环右移和累加的方式,通过判断乘数的...
然而,Java 的部署过程相对繁琐,不适合快速开发和小型项目,学习曲线也相对较陡峭。 .Net,尤其是从1.x到3.0的进化,逐渐增加了企业级开发的功能,如ASP.NET MVC等框架。在Web开发中,.Net 的服务器控件为开发带来...
在有机化学的学习中,理解并掌握试剂的性质及其在反应中的角色至关重要。本复习总结主要涉及了四个关键知识点:试剂的分类、反应类型、有机反应活性中间体以及过渡状态。 1. **试剂的分类与试剂的酸碱性** - **...
学习RoR不仅仅是学习语言和框架本身,还包括如何利用这些强大的库来解决实际问题。 通过"myRoR"的学习,你将不仅了解到RoR的基本概念,还能深入理解Web开发流程,包括数据库设计、前后端交互、用户体验优化等。在...
**四、实验小结** - 通过这两个实验,学生能够深入理解8255芯片的基本工作原理及其在微机系统中的应用。 - 实验中遇到的问题,如软延时不够精确等问题,可以通过增加循环次数或使用硬件定时器等方式解决。 #### ...
**Milog:基于Ruby on Rails的个人博客系统** Ruby on Rails(RoR)是一个流行的开源Web应用程序框架,它采用模型-...通过学习和理解这个项目,开发者不仅可以深化对RoR的理解,还能掌握构建Web应用的基本流程和技巧。
ror ax, 1 ; 对 AX 进行一次右循环移位 loop MARK1 mov [si], dx mov [si+2], bx jmp $ ; 无限循环 ``` - **主循环**:使用了 `loop` 指令实现循环控制,通过位操作和条件分支实现了对 MUL1 和 MUL2 的每一位进行...
1. **模型(Model)**:在本教程中,你将学习如何使用ActiveRecord,RoR的数据访问接口,与数据库进行交互。模型通常代表数据库中的表,包含与数据操作相关的业务逻辑。 2. **视图(View)**:视图负责显示数据。在...