• 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中的方法大体相同,可放心使用

  • 相关阅读:
    蓝桥杯省赛模拟:村庄建设、郊外植树。
    Andrew 算法(构造凸包)
    Codeforces Round #635 (Div. 2)(A, B, C, D)
    级边凸包构造法(extreme edge)
    极点的凸包构造算法(extreme point)
    Codeforces Round #633 (Div. 2)(A, B, C)
    凸包---graham scan算法 + 例题P2742
    Element-ui中ElScrollBar组件滚动条的使用
    HTTP:Web的基础
    HTTP报文
  • 原文地址:https://www.cnblogs.com/rixian/p/11636750.html
Copyright © 2020-2023  润新知