实例解析Ruby中的数值类型以及常量

数值类型(Number)
整型(Integer)
整型分两种,如果在31位以内(四字节),那为Fixnum实例。如果超过,即为Bignum实例。
整数范围从 -230 到 230-1 或 -262 到 262-1。在这个范围内的整数是类 Fixnum 的对象,在这个范围外的整数存储在类 Bignum 的对象中。
您可以在整数前使用一个可选的前导符号,一个可选的基础指标(0 对应 octal,0x 对应 hex,0b 对应 binary),后跟一串数字。下划线字符在数字字符串中被忽略。
您可以获取一个 ASCII 字符或一个用问号标记的转义序列的整数值。
实例

123         # Fixnum 十进制
1_234        # Fixnum 带有下划线的十进制
-500         # 负的 Fixnum
0377         # 八进制
0xff         # 十六进制
0b1011        # 二进制
"a".ord       # "a" 的字符编码
?\n         # 换行符(0x0a)的编码
12345678901234567890 # 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

浮点型
Ruby 支持浮点数。它们是带有小数的数字。浮点数是类 Float 的对象,且可以是下列中任意一个。
实例

123.4        # 浮点值
1.0e6        # 科学记数法
4E20         # 不是必需的
4e+20        # 指数前的符号
#浮点型
f1=0.0
f2=2.1
f3=1000000.1
puts f3 


算术操作

加减乘除操作符:+-*/;指数操作符为**
指数不必是整数,例如

#指数算术
puts 2**(1/4)#1与4的商为0,然后2的0次方为1
puts 16**(1/4.0)#1与4.0的商为0.25(四分之一),然后开四次方根

Ruby 常量
常量以大写字母开头。定义在类或模块内的常量可以从类或模块的内部访问,定义在类或模块外的常量可以被全局访问。
常量不能定义在方法内。引用一个未初始化的常量会产生错误。对已经初始化的常量赋值会产生警告。

#!/usr/bin/ruby
# -*- coding: UTF-8 -*-

class Example
  VAR1 = 100
  VAR2 = 200
  def show
    puts "第一个常量的值为 #{VAR1}"
    puts "第二个常量的值为 #{VAR2}"
  end
end

# 创建对象
object=Example.new()
object.show

在这里,VAR1 和 VAR2 是常量。这将产生以下结果:

第一个常量的值为 100
第二个常量的值为 200
(0)

相关推荐

  • ruby中的双等号==问题详解

    前两天在写代码的时候,突然收到警告说项目代码中存在 XSS 漏洞,遂立即根据报告的 URL 排查页面代码,虽然很快就修复了,而且同样问题的讨论两年前就有了,一般来说相对有经验的同学也应该都知道这个点,但是还是觉得有必要写出来,再次提醒一下其他小伙伴,避免踩坑. 问题根源 其中,在找到的漏洞出现的地方,都存在类似以下这样的 slim 代码: input class='xxx' value==params[:account] 问题就出在双等号 == 上,因为在 slim 跟 ERB 模板(其他模板比

  • Ruby中类变量和实例变量的比较

    1.类变量名以@@开始,一个类变量被这个类所有的实例对象共享;实例变量名以@开始,每个实例对象有各自不同的实例变量; 2.类变量在使用前必须初始化,否则在使用时会报错;而实例变量如果没有初始化,则使用时返回nil; 3.类变量是私有的,在类外无法直接访问,可以通过类方法和实例方法访问; 复制代码 代码如下: class B     @@number = 11     @@num = 22       def my_method      #定义实例方法         puts @@number

  • 实例解析Ruby中的数值类型以及常量

    数值类型(Number) 整型(Integer) 整型分两种,如果在31位以内(四字节),那为Fixnum实例.如果超过,即为Bignum实例. 整数范围从 -230 到 230-1 或 -262 到 262-1.在这个范围内的整数是类 Fixnum 的对象,在这个范围外的整数存储在类 Bignum 的对象中. 您可以在整数前使用一个可选的前导符号,一个可选的基础指标(0 对应 octal,0x 对应 hex,0b 对应 binary),后跟一串数字.下划线字符在数字字符串中被忽略. 您可以获取

  • 解析MySQL中存储时间日期类型的选择问题

    一般应用中,我们用timestamp,datetime,int类型来存储时间格式: int(对应javaBean中的Integer或int) 1. 占用4个字节 2. 建立索引之后,查询速度快 3. 条件范围搜索可以使用使用between 4. 不能使用mysql提供的时间函数 结论:适合需要进行大量时间范围查询的数据表 datetime(javaBean中用Date类型) 1. 占用8个字节 2. 允许为空值,可以自定义值,系统不会自动修改其值. 3. 实际格式储存(Just stores w

  • 通过实例解析java8中的parallelStream

    这篇文章主要介绍了通过实例解析java8中的parallelStream,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 about Stream 什么是流? Stream是java8中新增加的一个特性,被java猿统称为流. Stream 不是集合元素,它不是数据结构并不保存数据,它是有关算法和计算的,它更像一个高级版本的 Iterator.原始版本的 Iterator,用户只能显式地一个一个遍历元素并对其执行某些操作:高级版本的 Stream

  • 实例解析Java中的构造器初始化

    1.初始化顺序 当Java创建一个对象时,系统先为该对象的所有实例属性分配内存(前提是该类已经被加载过了),接着程序开始对这些实例属性执行初始化,其初始化顺序是:先执行初始化块或声明属性时制定的初始值,再执行构造器里制定的初始值. 在类的内部,变量定义的先后顺序决定了初始化的顺序,即时变量散布于方法定义之间,它们仍就会在任何方法(包括构造器)被调用之前得到初始化. class Window { Window(int maker) { System.out.println("Window(&quo

  • 实例解析Ruby设计模式开发中对观察者模式的实现

    一般来说,观察者模式的定义应该是这样的:building a clean interface between the source of news that some object has changed and the consumers of that news. 观察者模式在消息的生产者和消费者之间建立了clean interface,这样就使得消息的生产者和消费者之间的耦合是抽象的.被观察者可以不认识任何一个的观察者,它只知道他们都实现了一个共同的接口.由于观察者和被观察者没有紧密的耦合

  • 详细解析Ruby中的变量

    变量持有要使用的程序的数据的存储位置. Ruby支持的有五种类型的变量.在前面的章节中已经经历了一个简短描述以及这些变量.本章中介绍的这五种类型的变量. Ruby的全局变量: 全局变量以$开头.未初始化的全局变量的值是零,并使用-w选项产生警告. 全局变量的赋值会改变全局状态.这是不推荐使用全局变量.他们使得程序的含义模糊. 下面是一个例子显示使用全局变量. #!/usr/bin/ruby $global_variable = 10 class Class1 def print_global p

  • 实例讲解Ruby中的五种变量

    Ruby 全局变量 全局变量以 $ 开头.未初始化的全局变量的值为 nil,在使用 -w 选项后,会产生警告. 给全局变量赋值会改变全局状态,所以不建议使用全局变量. 下面的实例显示了全局变量的用法. #!/usr/bin/ruby $global_variable = 10 class Class1 def print_global puts "Global variable in Class1 is #$global_variable" end end class Class2 d

  • 解析Go 中的 rune 类型

    刚接触 Go 语言时,就听说有一个叫rune的数据类型,即使查阅过一些资料,对它的理解依旧比较模糊,加之对陌生事物的天然排斥,在之后很长一段时间的编程工作中,我都没有让它出现在我的代码里. 逃避虽然有用,但是似乎有些可耻,想要成为一名成熟.优秀的 Go 语言开发工程师,必须要有直面陌生事物并且成功运用的勇气和能力,带着这样的觉悟,让我们一起走近rune,直视它! 了解一下,rune类型究竟是什么? rune类型是 Go 语言的一种特殊数字类型.在builtin/builtin.go文件中,它的定

  • 实例解析Ruby设计模式编程中Strategy策略模式的使用

    今天你的leader兴致冲冲地找到你,希望你可以帮他一个小忙,他现在急着要去开会.要帮什么忙呢?你很好奇. 他对你说,当前你们项目的数据库中有一张用户信息表,里面存放了很用户的数据,现在需要完成一个选择性查询用户信息的功能.他说会传递给你一个包含许多用户名的数组,你需要根据这些用户名把他们相应的数据都给查出来. 这个功能很简单的嘛,你爽快地答应了.由于你们项目使用的是MySQL数据库,你很快地写出了如下代码: require 'mysql' class QueryUtil def find_us

  • 实例解析Ruby程序中调用REXML来解析XML格式数据的用法

    REXML 是由 Sean Russell 编写的库.它不是 Ruby 的唯一 XML 库,但它是很受欢迎的一个,并且是用纯 Ruby 编写( NQXML 也是用 Ruby 编写的, 但 XMLParser 封装了用 C 编写的 Jade 库). 在他的 REXML 概述中,Russell 评论道: 我有这样的问题:我不喜欢令人困惑的 API.有几种用于 Java 实现的 XML 解析器 API.其中大多数都遵循 DOM 或 SAX,并且在基本原理上与不断出现的众多 Java API 非常相似.

随机推荐