Ruby自学笔记(二)— Ruby的一些基础知识
Ruby安装好之后,我们就可以来实践Ruby语言了。
以下是一些学习到的简单基础知识:
1. 如何执行Ruby文件?
我们编写的Ruby文件是以rb为后缀名的,例如:XXX.rb。当要执行ruby文件时,可以打开命令行窗口,进入到Ruby文件所在的目录下,通过命令ruby XXX.rb来执行,可以看如下示图:

2. print方法:用于打印字符串功能,print ("Hello", " Ruby !", "\n") print "Hello Ruby !\n"
3. 换行符:\n,\n\t, 转义符:\
4. puts方法: 和print方法类似,也是用来打印字符,但其中每个分段的字符串都会自动换行。例如, puts ("Hello", "Ruby", "!") 显示结果如下:

5. p方法:用来显示数据的方法,其不会对数据做任何修改,只是显示数据。例如:p "Hello, \n\t Ruby" 则引号会保留:

6. 可以直接用四则运算,数学函数计算
7. 注释:使用#开头的语句都会被当做注释,也可以将注释写在语句中间,则后面以#开头的语句都会当做注释了。
如果是一大段东西都是注释,则可以将需要注释的语句都放在=begin和=end之间,如下所示:
PS: 在JAVA中,注释可以用//, 或者/* ........*/
=begin
This is comment for Ruby program
print "Hello Ruby !"
=end
8. Ruby中的变量:变量和JAVA中变量类似,只是没有数据类型,但是有特殊的变量名,然后赋值。
变量有以下类型:局部变量 (变量名以小写字母或_起始的变量)
全局变量 (变量名以$起始的变量)
实例变量 (变量名以@起始的变量)
类变量 (变量名以@@起始的变量)
虚拟变量 ('true', 'false', 'self'等特定名称的变量)
9. 读取文件内容:open(filename)方法,打开文件,并且会返回一个文件对像
filename = ARGV[0]
file = open(filename) #使用open方法获取文件对象
text = file.read #使用read方法来将文件对象的内容读取出来
print text
file.close #关闭文件对象
10. 读入其他文件:即想要在当前程序中调用另外一个程序的方法,则需要读入其他文件 -》 require "想要读入的库名",其中名字可以省略.rb这个后缀名。也可以读取其他的标准库。
require "hello" #读入Hello.rb文件
hello() #调用hello.rb中的hello()方法
11. 条件判断:if~then~else~end,而JAVA中则没有then和end(后面会详述)
12. 字符串反复执行:while (condition) do~end, 对象.times方法 (后面会详述)
13. 每个对象都有ID和值。1)每个对象都有object_id这个方法来获得ID; 2)每个对象都可以通过equal?方法来判定是否为同一个对象,即ID是否相同。3)若判断对象持有的值是否相等,则使用==,也可以使用eql?方法,但使用==时候,需要进行必要的转换,而eql?则可以不变换就能直接进行比较。
PS: 大家可以思考下,在JAVA中,==与equal()方法的区别
ary1 = [] #定义一个数组
p ary1.object_id # => 67653636 str1 = "foo"
str2 = str1
str3 = "f" + "o" + ''o"
p str1.equal?(str2) # =>true
p str1.equal?(str3) # =>false p str1 == str3 # =>true p 1.0 == 1 # =>true
p 1.0.eql?1 # =>false
Ruby自学笔记(二)— Ruby的一些基础知识的更多相关文章
- 《Programming Hive》读书笔记(两)Hive基础知识
<Programming Hive>读书笔记(两)Hive基础知识 :第一遍读是浏览.建立知识索引,由于有些知识不一定能用到,知道就好.感兴趣的部分能够多研究. 以后用的时候再具体看.并结 ...
- tensorflow笔记(一)之基础知识
tensorflow笔记(一)之基础知识 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7399701.html 前言 这篇no ...
- php面试笔记(5)-php基础知识-自定义函数及内部函数考点
本文是根据慕课网Jason老师的课程进行的PHP面试知识点总结和升华,如有侵权请联系我进行删除,email:guoyugygy@163.com 在面试中,考官往往喜欢基础扎实的面试者,而函数相关的考点 ...
- php面试笔记(3)-php基础知识-运算符
本文是根据慕课网Jason老师的课程进行的PHP面试知识点总结和升华,如有侵权请联系我进行删除,email:guoyugygy@163.com 在面试中,考官往往喜欢基础扎实的面试者,而运算符相关的考 ...
- 【二】、UML基础知识——图图解乾坤
[二].UML基础知识 UML概述 UML是一个通用的可视化建模语言,不同于编程语言,它通过一些标准的图形符号和文字来对系统进行建模.用于对软件进行描述.可视化处理.构建软件系统的文档.是一套总结了以 ...
- Ruby自学笔记(一)— 基本概况
之前一直想要多看看RESTful Service相关的东西,找到一本相关的书,但是里面的代码都是用Ruby写的,虽然知道编程语言都是类似的,但是看到一些陌生的语法,还是有些摸不着头脑,所以最近终于下定 ...
- TCP/IP协议(二)tcp/ip基础知识
今天凌晨时候看书,突然想到一个问题:怎样做到持续学习?然后得出这样一个结论:放弃不必要的社交,控制欲望,克服懒惰... 然后又有了新的问题:学习效率时高时低,状态不好怎么解决?这也是我最近在思考的问题 ...
- 二、tcp/ip基础知识
一.TCP/IP的标准化 1.TCP/IP的含义 一般来说,TCP/IP是利用IP进行通信时所必须用到的协议群的统称. 具体点,IP或ICMP.TCP或UDP.TELENT或FTP.以及HTTP等都属 ...
- Linux运维笔记(一)网络基础知识
网络基础知识 一.基本概念 1.ARPANET & TCP/IP:以“软件”技术将网络硬件整合,使得不同的计算机或者数据可以通过这个软件达成数据沟通(TCP/IP技术也被称为Internet) ...
随机推荐
- [ACM] HDU 5025 Saving Tang Monk (状态压缩,BFS)
Saving Tang Monk Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) ...
- Struts 有哪些经常使用标签库
Struts 有哪些经常使用标签库 1.html标签库 2.bean标签库 3.logic标签库
- ZEDBOARD启动自启配置(加载镜像) 分类: OpenCV ubuntu shell ZedBoard Eye_Detection 2014-11-08 18:53 167人阅读 评论(0) 收藏
参考:陆书14.2.8 1)备份ramdisk8M.image.gz 2)加载rootfs镜像文件: 3)在镜像目录下建立自己所需文件夹(挂载目录): 我需要的挂载目录有两个: root/qt/ins ...
- [Javascript] Array - Conact
For example there are two array of object and you want to print out each element, it is bad if you u ...
- 重复记录(duplicate records)相关运营数据
MySQL 中查找反复数据,删除反复数据 创建表和測试数据 /* 表结构 */ DROPTABLEIFEXISTS `t1`; CREATETABLEIFNOTEXISTS `t1`( `id` IN ...
- 转载:JAVA 正则表达式 (超详细)
在Sun的JavaJDK 1.40版本中,Java自带了支持正则表达式的包,本文就抛砖引玉地介绍了如何使用Java.util.regex包. 可粗略估计一下,除了偶尔用Linux的外,其他Linu x ...
- Java基础知识强化之集合框架笔记41:Set集合之HashSet存储自定义对象并遍历练习
1. HashSet集合存储自定义对象并遍历.如果对象的成员变量值相同即为同一个对象 注意了: 你使用的是HashSet集合,这个集合的底层是哈希表结构. 而哈希表结构底层依赖:hashCode()和 ...
- android MediaCodec 音频编解码的实现——转码
原文地址:http://blog.csdn.net/tinsanmr/article/details/51049179 从今天开始 每周不定期更新博客,把这一周在工作与学习中遇到的问题做个总结.俗话说 ...
- codevs 1170 双栈排序
/* 好题啊 好题啊 而然还是看了一眼题解啊 有那么一点思路 但是离写出代码还很远 考虑必须分开放倒两个栈里的情况 即存在i<j<k 有 a[k]<a[i]<a[j] 这里RM ...
- json 序列化的两种方式
JavaScriptSerializer Serializer = new JavaScriptSerializer(); ResultData<EUserData> resultMode ...