`

ruby基础

阅读更多
引用
if __FILE__ == $0
  # TODO Generated stub
  class Person
    def initialize(name,age=18) #initialize是初始化方法,相当于java的构造器
      @name=name
      @age=age
      @motherland="China"
      
    end #初始化方法结束
    def talk
      puts "my name is "+@name+",age is "+@age.to_s #@age.to_s的含义是:将数@age转换为字符串
      if @motherland =="China"
        puts "I am a chinese."
      else 
        puts "I am a foreigner."
      end
    end #talk方法结束
    
    # attr_reader: 实例变量只读
    
    # attr_writer: 实例变量可写
    
    # attr_accessor: 变量可读可写
    
    attr_writer:motherland
    #attr_writer:motherland相当于def motherland=(value) return @motherland=value end
    #attr_reader:motherland相当于def motherland return @motherland end
    # attr_accessor:motherland
  end #person类结束
  
  #在Ruby中模块定义:module
  # 类定义:class
  # 方法定义:def undef
  # 检查类型:defined?
  p1=Person.new("hefeng",24)
  p1.talk
  p2=Person.new("Ben")
  p2.motherland="ABC"
  p2.talk
  
  class Student <Person #用"<"表示Student类是Person类的子类
    def talk
      puts "I am a student.my name is "+@name+",age is "+@age.to_s
    end #talk 方法结束
  end
  p3=Student.new("ChZh", 27);
  p3.talk
  p4=Student.new("Tom");
  p4.talk
  #常量全用大写的字母,用下划线分割单词.例如:MAX,ARRAY_LENGTH.
  #类名和模块名用大写字母开头的单词组合而成.Eg:MyClass.Person
  #变量和参数用小写字母开头的单词组合而成.Eg:name currentValue
  #方法名全用小写的字母,用下划线分割单词.Eg:talk,is_prime?.在Ruby里,有时将"!"和"?"附于某些方法名的后面.
  #惊叹号"!"暗示这个方法具有破坏性,有可能会改变传入的参数.
  #"?"表示这个方法是一个布尔方法,只会返回true或false
  
  
  
end
#可变参数方法
def sum(*num)
  numSum = 0
  num.each{|i|numSum+=i}
  return numSum
end
puts sum()
puts sum(3,6)
puts sum(1,2,3,4,5,6,7,8,9)

#Ruby中要使用域作用符::
# 全局变量用$开头
# 实例变量,变量名用@开头
# 变量名用@@开头  

class StudentClass
  #变量
  @@count=0
  def initialize(name)
    @name = name
    @@count+=1
  end
  def talk
    puts"I am #@name,This class have #@@count students."
  end
end
p1 = StudentClass.new("Student 1")
p2 = StudentClass.new("Student 2")
p3 = StudentClass.new("Student 3")
p4 = StudentClass.new("Student 4")
p1.talk

class StudentClass
  #变量
  @@count=0
  #类方法
  def initialize
    @@count+=1
  end
  def StudentClass.student_count
    puts"This class have #@@count students."
  end
end
p1 = StudentClass.new 
p2 = StudentClass.new 
p3 = StudentClass.new 
p4 = StudentClass.new 
StudentClass.student_count

#单例方法也叫单件方法.定义单例方法,首先要生成一个实例对象,其次要在方法名前加上对象名和一个点号"."
class Ps
  def talk
    puts "Hi!"
  end
end
p1 = Ps.new
B2 = Ps.new

def B2.talk
  puts "Here is SB"
end

p1.talk
B2.talk
#模块:在程序中,相关的,不相关的代码的组合,叫作模块 模块名.方法名(参数)
arr=[3,4,5,6,7,8,9]
puts arr[0]
puts arr.first
puts arr[arr.length-1]
puts arr[arr.size-1]
puts arr[-2]
#Ruby的数组大小是动态,
#数组的索引从0开始,一直到数组的长度减1;负数表示从数组末尾开始的索引;用一对数字索引数组,
#第一个数字表示开始位置,第二个数字表示从开始位置起的元素数目
arr=[4,5,6]
#打印数组集合
print arr.join(","),"\n"
#把4号索引位置元素赋值为"m"
arr[4]="m"
print arr.join(","),"\n"
#打印3号索引
print arr[3],"\n" #3号索引为空!!!
arr.delete_at(3) #删除3号索引位置元素
print arr.join(","),"\n"
arr[2]=["a","b","c"] #把2号索引位置元素赋值为["a","b","c"]
arr[0..1]=[7,"h","b"] #把0..1号元素替换为7,"h","b"
arr.push("b") #加入元素"b"
arr.delete(["a","b","c"])#删除元素["a","b","c"]
arr.delete("b")#删除所有元素"b"
arr.insert(3,"d")#在3号索引位置插入元素"d"
arr<<"f"<<2 #加入元素"f";加入元素2
arr.pop #删除尾元素
arr.shift #删除首元素
arr.clear #清空数组arr

if __FILE__ == $0
  # TODO Generated stub
  #数组运算
  aaaa=["aa",4,5,"bb"]
  bbbb=[4,1,3,2,5]
  print aaaa*2,   "\n"
  print bbbb-aaaa ,"\n"
  print aaaa | bbbb ,"\n"#并运算 aa 45 bb 132
  print aaaa & bbbb ,"\n"#交运算45
  print bbbb.sort ,"\n"#排序
  print aaaa.reverse ,"\n"#倒置
  #%q用来生成单引号字符串;%Q用来生成双引号字符串.%q或者%Q后面跟着的是分隔符.
  str ="Hello,kaichuan, Welcome!"
  puts str=~/a/
  #匹配一个正则表达式用"=~"
   #匹配一个正则表达式用"!~"
   #块可以接收yield传来的参数
   def do_something
     yield #块
 end
 do_something do
   (1..9).each{|i| print i if i<5}
   puts
 end
 do_something do
   3.times{print "Hi"}
puts
 end
end

#数组迭代器
class Array
def one_by_one
  for i in 0...size
    yield(self[i])
  end
  puts
    end
  end
arr=[1,3,5,7]
arr.one_by_one{|k| print k, " ,"}
arr.one_by_one{|h| print h*h, " ,"}
if __FILE__ == $0
  # TODO Generated stub
  #求50内的素数
  for i in 2..50
f=true
for p in 2...i
  if i%p==0 #如果能整除
    f=!f #那么这个数不是素数
    break
  end
end
print i," " if f #如果这个数保持起始假定,则打印
end
print "\n"
# times upto downto each step
 3.times{print "Hi!"}
 1.upto(9){|i|print i if i<7}
 9.downto(1){|i| print i if i<7}
 (1..9).each{|i|print i if i<7}
 0.step(11,3){|i|print 1}
 
 #在 ruby 中用begin/end rescue ensure raise 来处理异常,在ruby可以用在rescue中,
 #可以只用rescue或是ensure,两者都使用时,rescue必须在ensure前
end










分享到:
评论

相关推荐

    Ruby基础教程(第5版)1

    《Ruby基础教程(第5版)》是一本由日本知名编程专家高桥征义和后藤裕藏共同著作,经过Ruby之父松本行弘审校的编程入门指南。本书专注于教授Ruby 2.3版本的语法和核心概念,旨在帮助初学者轻松掌握这门强大的面向...

    Ruby 基础语法 视频教程1

    这个"Ruby基础语法视频教程1"涵盖了几个关键的概念,包括变量、变量规则以及表达式。以下是对这些主题的详细解释: 1. 变量(Variables): 在Ruby中,变量用于存储数据,并在程序的不同位置使用。Ruby有五种不同...

    Ruby基础教程(中文第4版)

    《Ruby基础教程(中文第4版)》是一本详尽介绍Ruby编程语言的权威指南,专为初学者和有一定编程经验的开发者设计。这本非扫描版的电子书以其清晰的排版和易于理解的内容,提供了学习Ruby 2.0版本的完美起点。Ruby是一...

    ruby基础教程(中文第四版).epub

    排班精美,图文清晰。是市面上最适合初学者入门的 Ruby 教程,由 ruby 创始人亲自编写。...本书适合Ruby初学者学习参考, 有一定Ruby编程基础的读者若想再回顾一下Ruby的各知识点, 本书也能提供不少帮助。

    ruby 基础 知识 有利于学好ruby

    ### Ruby基础知识点详解 #### 一、Ruby简介与特点 Ruby是一种面向对象的脚本语言,具有简洁清晰的语法特点,使得开发效率大大提高。它既适合编写简单的脚本,也适用于构建复杂的Web应用。Ruby的设计哲学之一就是使...

    Ruby 基础

    在这个"Ruby基础"的主题中,我们将深入探讨Ruby语言的核心概念和特性,以及如何利用它进行高效的编程。 首先,我们要理解Ruby的基本语法。Ruby允许程序员使用自然语言般的表达方式编写代码,这使得代码更易于阅读和...

    ruby基础学习资料

    在初学者的旅程中,掌握Ruby基础知识至关重要。这个“ruby基础学习资料”压缩包很显然是为那些想要入门或者深入理解Ruby的人准备的。让我们详细探讨一下Ruby的基础知识。 1. **变量与数据类型**: Ruby支持五种...

    ruby基础教程中文第四版

    《Ruby基础教程(中文第四版)》是深入学习Ruby语言的重要参考资料,由Ruby之父亲自审校并作序推荐,其权威性和准确性不言而喻。 该书涵盖了Ruby的基础知识,包括但不限于以下内容: 1. **变量和常量**:Ruby中的...

    ruby基础教程

    ruby基础教程(中文第四版)适合ruby初学者的必看教程。

    Ruby基础教程,RUBY入门必备啊~

    `03182919948.doc`这个文件名可能是Ruby基础教程文档的章节编号或者版本号。文档内容可能涵盖以下主题: 1. Ruby安装:如何在不同操作系统上安装Ruby环境。 2. 变量和数据类型:介绍Ruby中的局部变量、实例变量、类...

    RUBY基础入门指南

    ### RUBY基础入门指南 #### 一、Ruby语言概述 **1.1 Ruby的历史** Ruby是一种面向对象的脚本语言,由日本人松本行弘(Yukihiro Matsumoto)于1995年开始开发。它结合了Perl的灵活性、Smalltalk的强大功能以及Ada...

    Ruby基础语法使用方法全套讲解,风格讲解指南大全

    在这个"Ruby基础语法使用方法全套讲解,风格讲解指南大全"中,我们将深入探讨Ruby的核心特性,包括变量、数据类型、控制结构、函数、类和模块等基础知识。 1. **变量**:Ruby中的变量分为五种类型:局部变量(以...

    Ruby基础教程思维导图

    Ruby基础教程思维导图 Ruby基础教程思维导图

    Ruby基础知识-数据类型.pdf

    ### Ruby基础知识-数据类型 #### 一、概览 在Ruby语言中,数据类型是程序设计的基本组成部分。本文档旨在详细介绍Ruby支持的各种基本数据类型及其使用方法,包括但不限于Number(数值)、String(字符串)、Ranges...

    Ruby基础语法经典学习PPT教程

    Ruby基础语法经典学习PPT教程. 网上关于ruby的PPT教程不太多,这个个人觉得还可以。

    Ruby基础教程编程语言算法集 / Ruby

    Ruby基础教程编程语言算法集 / Ruby

    Ruby基础语法+Ruby变量与数据类型+Ruby控制结构+Ruby函数与方法+Ruby面向对象编程等全套教程

    Ruby基础语法 Ruby变量与数据类型 Ruby控制结构 Ruby函数与方法 Ruby面向对象编程 Ruby模块与包 Ruby错误处理 Ruby文件与I/O操作 Ruby正则表达式 Ruby网络编程 Ruby数据库交互 Ruby测试框架 RubyWeb框架Rails入门 ...

Global site tag (gtag.js) - Google Analytics