编程语言Rubyの基础入门

来源:互联网 发布:淘宝重复铺货处罚 编辑:程序博客网 时间:2024/06/04 19:14

Ruby 基础入门

基本介绍

  • p “hello world”
  • irb 进入交互操作, ruby 文件名 执行rb程序
  • ri –serve 启动在线帮助文档服务
  • 获取object_id “.obejct_id” 获取class “.class”
  • 实例变量@开头,类变量@@开头,全局变量$开头

实例汇总

$prefix = "demo"   # 全局变量# 对象Userclass User    @@count = 0 # 类变量    def initialize(firstName = "user-first", lastName = "user-last") # 构造器        @firstName = firstName  # 实例变量        @lastName = lastName    # 实例变量        @@count += 1                end    def self.get_name_count  # 类方法        @@count    end    def get_firstName   # 实例方法        @firstName    end    def set_firstName(firstName) # 实例方法        @firstName = firstName        return nil    end    def get_lastName    # 实例方法        @lastName    end    def set_lastName(lastName) # 实例方法        @lastName = lastName        return nil    end    def toString        puts(@firstName + ", " + @lastName)    end    def muchReturn  # 返回多个值,其实返回一个数组        x, y = 1, 2        return x, y    end    alias get_Name get_lastName # 别名    undef toString # 取消方法endalias $p $prefix # alias dect src# user = User.new("user-first", "user-last") # 实例化# User.get_name_count # 类方法# user.get_lastName # 实例方法# $prefix # 全局变量# p 数据  # 打印# puts 数据 # 打印# print 数据 # 打印# '字符'.ord  # 打印字符ASCII# "字符串" =~ /正则/ # 字符串是否匹配正则#  5.times {puts "hello"}=beginhellohellohellohellohello=> 5=end=beginirb(main):096:0> 5.times {|number| puts number}01234=> 5=end=beginirb(main):097:0> 1.upto(10) {|number| puts "#{number}"}12345678910=> 1irb(main):098:0> 1.upto(10) {|number| puts number}12345678910=> 1=end=beginirb(main):101:0> 10.downto(1) {|number| puts number}10987654321=> 10=end=beginirb(main):102:0> 5.step(100, 5) {|number| puts number}5101520253035404550556065707580859095100=> 5=end=begin# 数组操作arr = [1, 2, 3, 4, 5, 6]arr[2]          # 3arr[-3]         # 4arr[1..4]       # [2, 3, 4, 5]arr.at(0)       # 1arr.fetch(1)    # 2arr.take(3)     # [1, 2, 3]arr.drop(3)     # [4, 5, 6]arr.length      # 6arr.count       # 6arr.empty?      # falsearr.include?(6) # truearr.push(7)     # 增加元素 arr << 8        # 增加元素arr.unshift(0)  # 数组前加元素arr.insert(3, "apple")  # 指定位置插入元素arr.pop         # 删除最后一个元素arr.shift       # 删除第一个元素arr.delete_at(2)# 删除元素,参数是下标arr.delete(2)   # 删除元素,参数是内容arr.uniq        # 数组去重,返回新数组arr.compact     # 删除nil元素,返回新数组arr.each        # arr.each{|i| puts x}arr.reverse_each# arr.each{|i| puts x}arr.map         # arr.map{|i| x * 2}        # 特定的操作arr.select      # arr.select{|x| x < 2}     # 选择符合条件的元素并返回arr.reject      # arr.reject{|x| x < 2}     # 选择不符合条件的元素并返回arr.drop_while  # arr.drop_while{|x| x < 2} # 删除前面满足条件的元素arr.delete_if   # 满足条件,删除,修改数组本身arr.keep_if     # 满足条件,保留,修改数组本身=end=begin# hashhashMap = {"key1" => "value1", "key2" => "value2"}hashMap = {"key1": "value1", "key2": "value2"}hashMap = Hash.new()    # 默认值为nilhashMap = Hash.new(-1)  # 默认值为0hashMap.default         # 返回默认值hashMap.empty?          # 是否为空hashMap.eql?({})        # 与另外一个hash是否相同hashMap.length          #hashMap.size            #hashMap.clear           # 清空hashMap[:key1]          # 返回键所对应的值,第一个不添加: 其他的添加 :hashMap.fetch(:key1)    # 返回健所对应的值,没有则报错 hashMap.has_key?(:key1) # 检查是否存在键hashMap.key("value2")   # 通过值返回所对应的键hashMap.keys            # 返回所有键hashMap.values          # 返回所有值hashMap.assoc(:key1)    # 返回键所对应的键值数组 [:key1, value1]hashMap[:key3] = "value3"           #hashMap.store(key3, "value3")       #hashMap.merge({key3: "value3"})     # 不修改本身hashMap.merge!({key3: "value3"})    # 直接修改本身hashMap.update({key3: "value3"})    # 跟merge相同hashMap.delete(:key2)                       #  hashMap.delete_if{|key, value| value > 1}   # hashMap.keep_if{|key, value| value > 1}     # hashMap.shifthashMap.each                        # 同数组hashMap.each_pairhashMap.each_keyhashMap.each_valuehashMap.selecthashMap.rejecthashMap.flatten     # 返回数组hashMap.to_a        # 返回数组hashMap.invert      # 返回键值互换hashMap.to_s        # 返回hashMap字符串=end=begin# 正则表达式rex = Regexp.new("[a-z]")rex = /[a-z]/rex = %r{[a-z]}rex =~ str         # 是否匹配rex.match(str)      # 匹配字符串=end

关于博客

更新时间

2016-3-27

联系我

微博:我的微博
邮件:我的邮件

0 0
原创粉丝点击