zoukankan      html  css  js  c++  java
  • Ruby学习中(首探数组, 注释, 运算符, 三元表达式, 字符串)

    一. 数组

    1.定义一个数组

    games = ["英雄联盟", "绝地求生", "钢铁雄心"]
    puts games

    2.数组的循环

    games.each do |geam|
      puts "玩《#{geam}》"
    end
    
    games.each_with_index do |game, index|
      puts "我喜欢的第:#{index+1}个游戏是:#{game}"
    end

    注:相当于Python中的enumerate(枚举)方法遍历数组中的元素及其下标

    3.数组的连接

    puts games.join("|")

    注:数组数据的拼接方法,大部分语言都有且都为join

    4.判断是否是一个数组

    if games.respond_to?("each")
      puts "true"
    end
    
    if games.respond_to?("each_with_index")
      puts "true"
    end

    5.Ruby数组中的方法

    请参看:https://www.runoob.com/ruby/ruby-array.html

    二. 备注

    备注的使用:
        1. 一行备注
            # :井号备注
        2. 多行备注
            "=begin...=end"
        3. 之后全备注
            __END__

    三. Ruby的操作符

    请参看:https://www.runoob.com/ruby/ruby-operator.html

    1.值得注意的:

    (1). Ruby 三元运算符

    a = 1...10
    puts a.size >= 9? "" : ""

    (2). Ruby 范围运算符

    (3). Ruby defined? 运算符

    用法 1
    defined? variable # 如果 variable 已经初始化,则为 True
    例如:
    foo = 42
    defined? foo    # => "local-variable"
    defined? $_     # => "global-variable"
    defined? bar    # => nil(未定义)
    
    用法 2
    defined? method_call # 如果方法已经定义,则为 True
    例如:
    defined? puts        # => "method"
    defined? puts(bar)   # => nil(在这里 bar 未定义)
    defined? unpack      # => nil(在这里未定义)
    
    用法 3
    # 如果存在可被 super 用户调用的方法,则为 True
    defined? super
    例如:
    defined? super     # => "super"(如果可被调用)
    defined? super     # => nil(如果不可被调用)
    
    用法 4
    defined? yield   # 如果已传递代码块,则为 True
    例如:
    defined? yield    # => "yield"(如果已传递块)
    defined? yield    # => nil(如果未传递块)
    View Code

    (4). Ruby 点运算符 "." 和双冒号运算符 "::"

    实例1:
    MR_COUNT = 0        # 定义在主 Object 类上的常量
    module Foo
      MR_COUNT = 0
      ::MR_COUNT = 1    # 设置全局计数为 1
      MR_COUNT = 2      # 设置局部计数为 2
    end
    puts MR_COUNT       # 这是全局常量
    puts Foo::MR_COUNT  # 这是 "Foo" 的局部常量
    
    实例2:
    CONST = ' out there'
    class Inside_one
       CONST = proc {' in there'}
       def where_is_my_CONST
          ::CONST + ' inside one'
       end
    end
    class Inside_two
       CONST = ' inside two'
       def where_is_my_CONST
          CONST
       end
    end
    puts Inside_one.new.where_is_my_CONST
    puts Inside_two.new.where_is_my_CONST
    puts Object::CONST + Inside_two::CONST
    puts Inside_two::CONST + CONST
    puts Inside_one::CONST
    puts Inside_one::CONST.call + Inside_two::CONST
    View Code

    四. Ruby中的字符串

    请参看:https://www.runoob.com/ruby/ruby-string.html

    1.值得注意的:

    (1). Ruby中的%Q%q

    desc1 = %Q{Ruby 的字符串可以使用 ''""。}
    desc2 = %q|Ruby 的字符串可以使用 ''""。|
     
    puts desc1
    puts desc2

    %Q:用于替代双引号的字符串. 当你需要在字符串里放入很多引号时候, 可以直接用下面方法而不需要在引号前逐个添加反斜杠 (")

    %q:%q与%Q类似,但表示单引号,其实在双引号中' ' 不需要转义的 

    (2). +,<<,*

    +:字符连接        # 常用
    <<:字符带入       # 没见过
    *:字符循环        # python中有但没用过
    a = "我爱你"
    b = "亲爱的姑娘"
    puts a+b
    puts a<<b
    puts a
    puts a*3
    
    输出结果:
    我爱你亲爱的姑娘
    我爱你亲爱的姑娘
    我爱你亲爱的姑娘
    我爱你亲爱的姑娘我爱你亲爱的姑娘我爱你亲爱的姑娘

    (3). 单引号 '' 和双引号 "" 的区别

    str = "流影之主
    劫"
    str1 = '刀锋之影
    泰隆'
    query = "#{40+10+50}"
    query1 = '#{40+10+50}'
    puts str
    puts str1
    puts query
    puts query1
    
    输出结果:
    流影之主
    劫
    刀锋之影
    泰隆
    100
    #{40+10+50}

    注:Ruby中的大部分关于string的方法与Python中的方法大体相同,可放心使用

  • 相关阅读:
    多个类定义attr属性重复的问题:Attribute "xxx" has already been defined
    好用的批量改名工具——文件批量改名工具V2.0 绿色版
    得到ImageView中drawable显示的区域的计算方法
    得到view坐标的各种方法
    实现类似于QQ空间相册的点击图片放大,再点后缩小回原来位置
    Material Designer的低版本兼容实现(五)—— ActivityOptionsCompat
    Android 自带图标库 android.R.drawable
    解决 Attempting to destroy the window while drawing!
    解决Using 1.7 requires compiling with Android 4.4 (KitKat); currently using API 4
    Material Designer的低版本兼容实现(四)—— ToolBar
  • 原文地址:https://www.cnblogs.com/rixian/p/11636750.html
Copyright © 2011-2022 走看看