一. 数组

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(如果未传递块)

(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

四. 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 = "流影之主\n劫"
str1 = '刀锋之影\n泰隆'
query = "#{40+10+50}"
query1 = '#{40+10+50}'
puts str
puts str1
puts query
puts query1 输出结果:
流影之主
劫
刀锋之影\n泰隆
100
#{40+10+50}

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

Ruby学习中(首探数组, 注释, 运算符, 三元表达式, 字符串)的更多相关文章

  1. Ruby学习中(哈希变量/python的字典, 简单的类型转换)

    一. 哈希变量(相当于Python中的字典) 详情参看:https://www.runoob.com/ruby/ruby-hash.html 1.值得注意的 (1). 创建Hash时需注意 # 创建一 ...

  2. c的详细学习(2)数据类型,运算符与表达式

        本节用来介绍c语言中的数据类型和运算符.     (1)c语言的基本符号:       任何一种基本语言都有自己的基本词汇表.c语言的基本词汇表有一下几部分: *数字10个: *英文字母:大小 ...

  3. 周末学习笔记——day02(带参装饰器,wraps修改文档注释,三元表达式,列表字典推导式,迭代器,生成器,枚举对象,递归)

    一,复习 ''' 1.函数的参数:实参与形参 形参:定义函数()中出现的参数 实参:调用函数()中出现的参数 形参拿到实参的值,如果整体赋值(自己改变存放值的地址),实参不会改变,(可变类型)如果修改 ...

  4. java中把字节数组转换为16进制字符串

    把字符串数组转换为16进制字符串 import java.security.MessageDigest; public class StringUtil { public StringUtil() { ...

  5. python学习Day12 函数的默认值、三元表达式、函数对象(函数名)的应用场景、名称空间与作用域

    复习 1.字符串的比较: -- 按照从左往右比较每一个字符,通过字符对应的ascii进行比较 2. 函数的参数 : 1)实参与形参:       -- 形参:在函数定义时()中出现的参数       ...

  6. Ruby学习中(条件判断, 循环, 异常处理)

    一. 条件判断 详情参看:https://www.runoob.com/ruby/ruby-decision.html 1.详情实例(看看就中了) #---------------# # LOL场均人 ...

  7. C++中的字符数组、字符指、字符串针(腾讯)

    一.字符数组 1.定义时进行初始化的方式 (1)char c[12]={'I',' ','a','m',' ','h','a','p','p','y'};//最后两个元素自动补‘\0’(不是空格),其 ...

  8. pgsql中json格式数组查询结果变成了字符串

    场景复原 最近使用到了json的数组,用来存储多个文件的值,发现在连表查询的时候返回结果变成了字符串. { "id": "repl-placeholder-007&quo ...

  9. MATLAB学习(一)数组、变量、表达式、常用简单运算

    >> x=[1 2 3;4 5 6;7 8 9] x = 1 2 3 4 5 6 7 8 9 >> y=[1,2,3] y = 1 2 3 >> y=[1,2,3 ...

随机推荐

  1. Centos7下设置MySql自动启动

    原文链接:http://www.cnblogs.com/Sungeek/p/9687565.html 1.将服务文件拷贝到init.d下,并重命名为mysql cp /usr/local/mysql/ ...

  2. win7安装Elasticsearch和Elasticsearch-Head插件

    1.环境搭建 1)Java环境搭建可以参考相关的资料,这里不做详细介绍 2)nodejs环境搭建 到官方网站下载相应的zip包:https://nodejs.org/dist/v8.9.1/node- ...

  3. LeetCode---Backtracking && DP

    **322. Coin Change 思路:动态规划,构造一个数组,存入当前index最少需要多少个coin public int coinChange(int[] coins, int amount ...

  4. JVM-GC算法(三)-分代收集算法

    对象分类 上次已经说过,分代收集算法是针对对象的不同特性,而使用合适的算法,这里面并没有实际上的新算法产生.与其说分代收集算法是第四个算法,不如说它是对前三个算法的实际应用.  首先我们来探讨一下对象 ...

  5. tomcat配置加密的连接器https

    对称加密:加密和解密用的是同样的密钥. 非对称加密:使用一对密钥,公钥和私钥,私钥只由一方保管,不能外泄:公钥可以发给任何请求它的人 那么得到公钥的一方怎么确定这个公钥是服务器发过来的呢? 这个就需要 ...

  6. word 之 插入删除空行

    好久没有写程序了.有些手生: 在用C#对word进行直接开发操作过程中,为了文档的美观,我们会插入或删除空行. 1.插入空行的代码很简单. Selection 类型的TypeParagraph()函数 ...

  7. STL priority_queue

    priority_queue 优先队列(Priority Queues):顾名思义,一个有着优先级的队列.它是一种ADT,和队列的思想差不多—— 排队,数据结构中的队列是不能插队的,不能颠倒排队的顺序 ...

  8. VMware安装CentOS后无法无法识别网卡的解决方法

    请找到安装CentOS虚拟机的安装目录,找到.vmx后缀名的文件,点击鼠标右键选择用记事本打开,在文件的最后一行添加内容:ethernet0.virtualDev = "e1000" ...

  9. LC 890. Find and Replace Pattern

    You have a list of words and a pattern, and you want to know which words in words matches the patter ...

  10. LC 932. Beautiful Array

    For some fixed N, an array A is beautiful if it is a permutation of the integers 1, 2, ..., N, such ...