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(如果未传递块)
(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学习中(首探数组, 注释, 运算符, 三元表达式, 字符串)的更多相关文章
- Ruby学习中(哈希变量/python的字典, 简单的类型转换)
一. 哈希变量(相当于Python中的字典) 详情参看:https://www.runoob.com/ruby/ruby-hash.html 1.值得注意的 (1). 创建Hash时需注意 # 创建一 ...
- c的详细学习(2)数据类型,运算符与表达式
本节用来介绍c语言中的数据类型和运算符. (1)c语言的基本符号: 任何一种基本语言都有自己的基本词汇表.c语言的基本词汇表有一下几部分: *数字10个: *英文字母:大小 ...
- 周末学习笔记——day02(带参装饰器,wraps修改文档注释,三元表达式,列表字典推导式,迭代器,生成器,枚举对象,递归)
一,复习 ''' 1.函数的参数:实参与形参 形参:定义函数()中出现的参数 实参:调用函数()中出现的参数 形参拿到实参的值,如果整体赋值(自己改变存放值的地址),实参不会改变,(可变类型)如果修改 ...
- java中把字节数组转换为16进制字符串
把字符串数组转换为16进制字符串 import java.security.MessageDigest; public class StringUtil { public StringUtil() { ...
- python学习Day12 函数的默认值、三元表达式、函数对象(函数名)的应用场景、名称空间与作用域
复习 1.字符串的比较: -- 按照从左往右比较每一个字符,通过字符对应的ascii进行比较 2. 函数的参数 : 1)实参与形参: -- 形参:在函数定义时()中出现的参数 ...
- Ruby学习中(条件判断, 循环, 异常处理)
一. 条件判断 详情参看:https://www.runoob.com/ruby/ruby-decision.html 1.详情实例(看看就中了) #---------------# # LOL场均人 ...
- C++中的字符数组、字符指、字符串针(腾讯)
一.字符数组 1.定义时进行初始化的方式 (1)char c[12]={'I',' ','a','m',' ','h','a','p','p','y'};//最后两个元素自动补‘\0’(不是空格),其 ...
- pgsql中json格式数组查询结果变成了字符串
场景复原 最近使用到了json的数组,用来存储多个文件的值,发现在连表查询的时候返回结果变成了字符串. { "id": "repl-placeholder-007&quo ...
- 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 ...
随机推荐
- 快速乘(O(1))
inline long long multi(long long x,long long y,long long mod) { long long tmp=(x*y-(long long)((long ...
- Vue_(组件)自定义指令
Vue.js自定义指令 传送门 自定义指令:除了内置指令,Vue也允许用户自定义指令 注册指令:通过全局API Vue.directive可以注册自定义指令 自定义指令的钩子函数参数:自定义指令的钩子 ...
- func<T> 和 action<T>
一.Func Func<Result>,Func<T1,Result>是一个.Net内置的泛型委托. Func<TResult> Func<T,TResult ...
- zookeeper系列(三)zookeeper的使用--开源客户端
作者:leesf 掌控之中,才会成功:掌控之外,注定失败, 原创博客地址:http://www.cnblogs.com/leesf456/ 奇文共欣赏,大家共同学习进步. 一.前言 上一篇博客已 ...
- svn 巧用,如果遇到问题解决不了,而上一个版本可以正常使用,则可以查记录
svn 巧用,如果遇到问题解决不了 1.svn上一个版本可以正常使用的情况下 2.查看历史 3. 丢失的代码复制回来即可
- linux搭建ftp配置文件
# Example config file /etc/vsftpd/vsftpd.conf## The default compiled in settings are fairly paranoid ...
- yum 时一直停在Determining fastest mirrors 界面
[root@fanyk ~]# yum redis Loaded plugins: fastestmirror Determining fastest mirrors 在yum makecache时, ...
- Linux之bzip2命令
命令格式: bzip2 [-cdz] 档名 参数: -d :解压缩的参数 -z :压缩的参数 -num 用指定的数字num调整压缩的速度,-1或--fast表示最快压缩方法(低压缩比),-9或--be ...
- ConstraintLayout的简单介绍和使用
ConstraintLayout是Android Studio 2.2中主要的新增功能之一,也是Google在去年的I/O大会上重点宣传的一个功能.我们都知道,在传统的Android开发当中,界面基本 ...
- [spring]AOP(切面)编程
AOP 即 Aspect Oriented Program 面向切面编程 首先,在面向切面编程的思想里面,把功能分为核心业务功能,和周边功能. 所谓的核心业务,比如登陆,增加数据,删除数据都叫核心业务 ...