• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >ruby > Ruby基础知识之数据类型

Ruby基础知识之数据类型

作者:junjie 字体:[增加 减小] 来源:互联网

junjie 通过本文主要向大家介绍了ruby 基础语法下载,ruby基础,ruby基础教程,ruby基础教程 第4版,ruby基础教程 pdf等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

一、数值类型

(1)整型
整型分两种,如果在31位以内(四字节),那为Fixnum实例。如果超过,即为Bignum实例。
#整型 Integer 以下是一些整型字面量
#字面量(literal):代码中能见到的值,数值,bool值,字符串等都叫字面量
#如以下的0,1_000_000,0xa等
a1=0
#带千分符的整型
a2=1_000_000
#其它进制的表示
a3=0xa
puts a1,a2
puts a3
#puts print 都是向控制台打印字符,其中puts带回车换行符
=begin
这是注释,称作:嵌入式文档注释
类似C#中的/**/
=end
</div>
(2)浮点型
#浮点型
f1=0.0
f2=2.1
f3=1000000.1
puts f3 
</div>
浮点有个圆整错误,例如:0.4-0.3==0.1
这是不等的。C#中也是如此(采用IEEE-754浮点的都是如此)。因为很多浮点数是用一种近似值来表示的。例如0.1,它只是无限接近0.1。因为0.1不能用二进制精确表示。但0.5可以。
puts 0.3-0.2==0.1 #false
puts 0.8-0.3==0.5 #true
puts 0.8-0.7==0.1 #false
</div>
(3)算术操作
加减乘除操作符:+-*/;指数操作符为**
指数不必是整数,例如
#指数算术
puts 2**(1/4)#1与4的商为0,然后2的0次方为1
puts 16**(1/4.0)#1与4.0的商为0.25(四分之一),然后开四次方根
</div>
(二)字符串类型
字符串型可以用单引号或双引号表示。两种表式方法双引号推荐使用:双引号转义字符全;双引号中的字面量可以包含表达式。
字符串内插格式为:#{}
name="Ruby"
puts name
puts "#{name+",ok"}"
</div>
字符串分界符
可以通过字符串分界符来定义字符串字面量。
%q用于单引号规则
%Q用于双引号规则
分界符成对出现的,例如:(),[],{},两个!!。如果使用!做为分界符,其中字面量中又出现了!号,那么,需要\!来转义。当然,如果其中的字面量中出现了成对的分界符(其实是做为操作符出现的),那不需要转义的。
#分界符
s1=%Q[this ''/ssss123]
puts s1
#字面量中有分界符,一般情况下要做转义操作
s2=%Q!this ''/ssss123\!\!!
puts s2
#字面量中有成对的分界符出现,可以不做转义
s3=%Q(2*(1+1))
puts s3
</div>
在大字符串字面量中,不可保证分界符不出现。在ruby中支持header document。即通过定义分界字符串来定义字面量,可大大保证成功率。
通过<<或<<-紧临header 来定义,且结束段单独一行。如果通过<<-来定义的,则结束行前可加空白符。例如:
#分界字符串
s1=<<Header
sdfie''''//////[]
Header
puts s1
</div>
字符串操作
(1)用+号进行字符串连接。对于不是字符串的需要to_s方法进行显示转换,才能用于连接。注意的是,连接后的字符串会新建一个对象返回。
(2)用<<号进行字符串连接。此操作符连接字符串,是修改左侧字符串,而不新建对象。
(3)用*号表示重复左侧字符串,
(4)字符串截取
通过[]来访问字符串中的子字符串。字符串可以作为字符数组来看待。如果索引为负数,则从右向左取字符。(在1.8和1.9中通过[]访问返回的不同,1.9中取的更符合习惯)
通过[]索引访问进行赋值操作,可以替换字符。
通过[]中两个值进行访问,可以截取子字符串
(5)通过range截取子字符串。
通过range表示的两个都是索引,这个区别于[]中以逗号分隔的一个用于索引,另一个用于长度。
[..]或[…]
其中两个点的为包含区间。
(5)通过索引字符串,来判断包含关系
通过[“字符串']来判断是否包含此子字符串
(三)字符类型

字符类型通过?+字符来定义。

(四)数组

数组字面量通过[]中以逗号分隔定义,且支持range定义。同时,数组字面量引用同%q,%Q类似的%w,%W分界符。中间以空格分隔。
(1)数组通过[]索引访问
同字符串相似,数据通过索引进行访问。如果有两个数值,则一个表示索引,另一个表示元素个数
(2)通过赋值操作插入、删除、替换元素
(3)通过+,-号进行合并和删除元素,且集合做为新集合出现
(4)通过<<号向原数据追加元素
(5)通过*号重复数组元素
(6)通过|和&符号做并集和交集操作(注意顺序)
(五)哈希类型
哈希字面量由逗号分隔的kv对来定义,被包括在花括号之间,kv对以=>来定义
#hash
h1={"a1"=>1,"a2"=>2}
h2={:a1=>3,:a2=>4}
h3={a1:5,a2:6}
 
puts h1["a1"]
puts h2[:a1]
puts h3[:a1]
</div>
(六)范围类型
通过..或…符号定义范围类型,它有顺序性。
(七)true,false,nil
比较nil值,可以通过:
Ojb==nil或
Obj.nil?
(八)对象标识、对象的类、类型
对象标识在1.9中可以通过:
__id__得到,或object_id
 
对象的类:
Obj.class==String或
Obj.instance_of? String
 
x1="ok"
puts x1.class==String
puts x1.instance_of?String
</div>
判断是不是一种类型的实例也可通过:is_a?或===
x1="ok"

puts x1.is_a?String
puts x1===String
</div>
(九)对象冻结、污染
通过freeze冻结对象,被冻结对象将不可变(所有内部状态都不可变)。如果类被冻结,则类不能添加方法。
通过taint污染对象,被污染的对象会成为污染源(源自它的对象都是被污染的)。通过untaint进行解除污染。

</div>

您可能想查找下面的文章:

  • ruby声明式语法的实现例子
  • Ruby的语法和语言特性总结
  • Ruby语法笔记
  • Ruby编程中的语法使用风格推荐
  • Ruby中使用正则表达式的基础指引
  • Ruby中关于模块的一些基础知识
  • Ruby中一些基本语法知识点的罗列汇总
  • Ruby基础知识之类
  • Ruby基础知识之方法、代码段
  • Ruby基础知识之基本流程控制

相关文章

  • Ruby中任务构建工具rake的入门学习教程
  • ruby 类常量 解析
  • Linux系统上配置Nginx+Ruby on Rails+MySQL超攻略
  • RVM安装和使用总结笔记
  • Ruby实现的最长公共子序列算法
  • Ruby中嵌套对象转换成json的方法
  • CentOS中配置Ruby on Rails环境
  • Ruby self在不同环境的含义
  • 实例解析Ruby设计模式开发中对观察者模式的实现
  • 快速安装Ruby on Rails的简明指南

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • Ruby中访问SQL Server数据库的配置实例
    • 深入理解Ruby on Rails中的缓存机制
    • Ruby on Rails下的图像处理入门教程
    • ruby元编程之创建自己的动态方法
    • 设计模式中的模板方法模式在Ruby中的应用实例两则
    • Ruby基础知识之数据类型
    • 浅析Ruby中的类对象的概念
    • Ruby程序中正则表达式的基本使用教程
    • Ruby中嵌套对象转换成json的方法
    • Ruby实现的最短编辑距离计算方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有