Ruby的基础学习

ruby命令:ruby hello.rb

irb命令进入交互状态:irb,输入exit或者Ctrl+d退出交互状态

字符串对象可以使用” “(双引号),或者使用’ ‘(单引号)。程序会原封不动地输出单引号里的内容,不会进行转义

Ruby在调用方法时可以省略()

  • puts方法在输出结果的末尾一定会输出换行符
  • p方法,数值结构和字符串结果会以不同的形式输出。使用p方法时,换行符\n,制表符\t等特殊字符不会转义

Ruby程序的编码方式,是通过在程序的首行代码添加注释”# encoding : 编码方式“来制定的。该注释成为魔法注释。
–可使用”-E 编码方式“这个选项来制定输出结果的编码方式。
* ruby -E UTF-8 hello.rb
* irb -E UTF-8

输出变量
* print “name:”,realName #realName是一个字符串变量
* print “name:#{realName}”

注释:
* 单行注释:#
* 多行注释:=begin =end

条件语句:

if  条件(不用加括号) then(then可省略)
  ---
 else 
  ---
end

循环语句:

whiel 循环条件(不用加括号) do(可以省略)
    ---
end
循环次数.times do
    ----
end

数组:
1.names = ["one",1,"five",3]任何对象都可以作为数组元素
2.Ruby数组的大小事按实际情况自动调整的
3.数组的大小 names.size
4.数组的遍历

  names.each  do   |name| 
    ----
   end

do ~ end 之间的部分称为块(闭包函数),块的开始部分为|name|

散列(hash)
散列是键值对的一种数据结构,在Ruby中,一般是以字符串或符号作为键,来保存对应的对象。
1.address = {:name =>”JiangSu”,:pinyin => “jiangsu”}
address = {name: “JiangSu”,pinyin: “jinagsu”}
2.address = {:name =>”JiangSu”,:pinyin => “jiangsu”}
address[:name]
3.address.each do |key,value|

end

创建符号,在标识符的开头加上:即可。符号也是对象,一般作为名称标签来使用。
–sym = :foo
–sym2 = :”foo”

符号与字符串相互转化 to_s to_sym

正则表达式
1.创建正则表达式对象的语法 : /模式/
2.用” =~ “来匹配正则表达式和字符串
若匹配成功则返回匹配部分的位置,是从0开始计数的。
3.正则表达式右边的/后面加上i表示不区分大小写。

Ruby使用ARGV这个预定义好的数组来获取从命令行传递过来的数据。

读取文件内容:
filename = ARGV[0]
file = File.open(filename)
text =file.read
print text
file.close

从文件中逐行读取文件内容
filename = ARGV[0]
file = File.open(filename)
file.each_line do |line|
print line
end
file.close

方法定义:
def sayHello
print “Hello,World\n”
end

其它文件的使用:
被其它程序引用的程序,称为库。Ruby使用require方法来引用库,引用的库名可以省略后缀.rb。

grep.rb
def simple_grep(pattern,filename)
file = File.open(filename)
file.each_line do |line|
if pattern =~ line
print line
end
end
file.close
end

hello.rb
require “./grep”

pattern = Regexp.new(ARGV[0])
filename = ARGV[1]
simple_grep(pattern,filename)

类:
1.在生成新的对象时,一般会用到各个类的new方法。
2.想要知道某个对象属于哪个类时,可以使用class方法。
3.判断某个对象是否属于某个类时,可以使用instance_of?
4.创建一个类:
class Simple
def initialize(myname = “Ruby”)
@name = myname
end

def sayHello
    puts "Hello,#{@name}"
end

end

bob = Simple.new(“Ricky”)
ruby = Simple.new
bob.sayHello
ruby.sayHello
注意:Ruby类名必须大写
<1>把以ACSII编码的且为大写开头的变量 默认为 常量。
<2> Ruby中的局部变量名首字母的约定是小写。
<3>Ruby中的构造函数名称为initialize。
<4>Ruby中的成员变量(实例变量)前导@符,在initialize里进行声明与初始化。
<5>Ruby中的属性用attr_writer和attr_reader声明,分别对应c#的set,get,使用了attr_accessor是可读也可写
<6>Ruby中的全局变量前导$符。
<7>Ruby中的常数(常量)用大写字母开头,约定是全部大写。

在Ruby中,从对象外部不能直接访问实例变量或对实例变量赋值,需要通过方法来访问对象的内部。

Ruby提供了定义方法attr_reader、attr_writer、attr_accessor,只要指定实例变量名的符号,Ruby会自动生成存储器。
–attr_reader :name 只读
–attr_writer :name只写
–attr_accessor :name读写

类方法:
1.
class HelloWorld
def self.hello(name)
puts “#{name} said hello.”
end
end
HelloWorld.hello(“John”)
如果类方法定义不是在类上下文中,可以:
def HelloWorld.hello(name)
puts “#{name} said hello.”
end

2.
class HelloWorld
class << self
def hello(name)
puts “#{name} said hello.”
end
end
end

HelloWorld.hello(“Ricky”)

如果类方法定义不是在类上下文中,可以:
class << HelloWorld
def hello(name)
puts “#{name} said hello.”
end
end

常量:
class HelloWorld
Version = “1.0”
end
使用::通过类名来实现外部访问常量
HelloWorld::Version

类变量
以@@开头的变量称为类变量,类变量是该类所有实例的共享变量,可以多次改变类变量的值。与实例变量一样,从类的外部访问类变量时也需要存取器。但是,类变量不能使用attr_accessor等,所以需要直接定义。

限制方法的调用(public private protected)
1.在修改方法的访问级别时,为这些关键字指定表示方法名的符号
def pub
puts “pub is a public method”
end

public :pub

2.可以统一定义多个方法的访问级别
public #以下的方法都被定义为public

def pub
puts “pub is a public method”
end

3.扩展类

<1>在原有类的基础上添加方法
Ruby允许我们在已经定义好的类中添加方法。
class String(String为已定义好的类)
def count_word
arr = self.split(/\s+/)
return arr.size
end
end
<2>继承
class son < father(< 父类)

end

1.alias
给已经存在的方法设置别名
alias 别名 原名
alias :别名 :原名
在重定义已经存在的方法时,为了能用别名调用原来的方法,也需要用到alias。
2.undef
用于删除已有方法的定义
undef 方法名
undef :方法名

模块:
模块不能拥有实例;模块不能被继承

使用”模块名.方法名”的形式来调用在模块中定义的方法。
通过include可以把模块内的方法名、常量名合并到当前的命名空间。

Mix-in扩展功能
Mix-in就是将模块混合到类中,在定义类时使用include,模块里的方法、常量就都能被类使用。

使用module关键字来创建模块
在模块中定义方法时,只有通过”module_function :方法名”的形式声明才能公开给外部使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值