Ruby基本类型
#!/usr/bin/ruby
=begin
Ruby支持的有5种类型的变量
全局变量:以$开头 未初始化的全局变量的值为0 并使用-w选项产生警告 全局变量的赋值会改变全局状态 不推荐使用全局变量 他们使得程序的含义模糊
=end
#以下为全局变量例子
=begin
$global_variable = 10
class Class1
def print_global
puts "Global variable in Class1 is #$global_variable"
end
end
class Class2
def print_global
puts "Global variable in Class2 is #$global_variable"
end
end
class1obj = Class1.new
class1obj.print_global
class2obj = Class2.new
class2obj.print_global
=end
#以下为实例变量例子 实例变量以@开始 未初始化的实例变量的值是零 并产生-w选项
=begin
class Customer
@cust_id
@cust_name
@cust_addr
def initialize(id,name,addr)
@cust_id = id
@cust_name = name
@cust_addr = addr
end
def display_details()
puts "Customer id #@cust_id"
puts "Customer name #@cust_name"
puts "Customer address #@cust_addr"
puts "Customer address #@cust_addrs"
end
end
#Create Objects
cust1 = Customer.new("1","John","Wisdom Apartments,Ludhiya")
cust2 = Customer.new("2","Poul","New Empire road Khandala")
cust1.display_details()
cust2.display_details()
=end
=begin
#类变量 类变量以@@开始 他们可以用来在方法定义之前必须初始化 引用未初始化的类的类变量产生错误 类变量之间共享其中的类变量的类或模块的后代 即类变量永远为同一变量 共享同一个内存地址
class Customer
@@no_of_customers = 0
def initialize(id,name,addr)
@cust_id = id
@cust_name = name
@cust_addr = addr
end
def display_details()
puts "Customer id #@cust_id"
puts "Customer name #@cust_name"
puts "Customer address #@cust_addr"
end
def total_no_of_customers()
@@no_of_customers += 1
puts "Total number of customers :#@@no_of_customers"
end
end
#Create Objects
cust1 = Customer.new("1","John","Wiadom Apartiments Ludhiya")
cust2 = Customer.new("2","Poul","New Empire road khandala")
cust1.total_no_of_customers()
cust1.total_no_of_customers()
=end
=begin
#常量 常量以大写字母开头 在类或模块定义的常量可以在该类或模块访问 所定义外一个类或模块可以全局访问 常量不能定义在方法内 引用为初始化的常数会产生一个错误 分配已初始化一个常数会产生一个警告
class Example
VAR1 = 100
VAR2 = 200
def show
puts "Value of first Constant is #{VAR1}"
puts "Value of second contant is #{VAR2}"
end
end
#Create Objects
object = Example.new
object.show
=end
#拟变量 他们是特殊的变量 局部变量 但外观像常数 但不能给这些变量分配任何值
=begin
self:当前方法的接收方对象
true:表示真的值
false:表示假的值
nil:表示未定义的值
__FILE_:在当前源文件的名称
__LINE_:在源文件中的当前行号
#基本常值
Ruby使用字面值的规则是简单和直观 如下
整型数:一个整数的范围可以从-2的-30次方到2的29次方或者从-2的-62次方到2的61次方。在此范围的整数是fixnum类的对象 在此范围之外的整数存储在bignum的类的对象 编写整数使用可选的前导符号 一个可选的基数表示(0八进制,0x表示十六进制或二进制0b),其次是一串数字在相应基数。下划线字符被忽略的数字串
123 #普通整形
1_234 #带下划线
-500 #负数
0377 #八进制
0xff #十六进制
0b1011 #二进制
?a #'a'的ASC码
1234567894345342342333 #bignum类型整数
#浮点数 浮点数是float对象
#字符常值 字符串是简单的8位字节序列 他们是string类对象 双引号字符串可以替代和反斜线符号 但不允许单引号替换 和只允许反斜线符号和' 也可以使用#{expr}序列表示任何Ruby表达式的值 表达式expr可以是任何Ruby表达式
#数组 Ruby的数组是由放置对象引用方括号之间用逗号分隔的一系列字面 逗号结尾被忽略 对象可以是任意类型
#哈希 字面上Ruby创建哈希放置括号之间的键值对列表,以逗号或序列=>之间的键值 逗号结尾被忽略
#范围 范围代表的间隔 一组的开始和结束的值 可能被使用s..e和s...e文字 或具有Range.new范围 范围使用..包括运行从现在到结束 闭区间 使用...为半区间 排除最终值 当作为一个迭代器 范围序列中的每个值将返回 range(1..5)表示1,2,3,4,5值
=end
arr = ["fewwe",10,3.2,-32,"This is a string","last element",]
arr.each do |i|
puts i
end
hsh = colors = {"red" => 0xf00 ,"green"=>0x0f0,"blue"=>0x00f}
hsh.each do |key,value|
#print key ," is ",value ,"
#"
puts ("#{key} is #{value}")
end
(1..10).each do |n|
puts ("#{n}")
end
Ruby基本类型的更多相关文章
- Ruby混合类型
当一个类拥有可以从多个父类继承的特点,类应该显示多重继承. Ruby没有直接支持多继承,但Ruby模块有另一个精彩使用.他们几乎消除多重继承的需要,提供了一个工厂,称为混入. 混合类型给一个精彩的控制 ...
- Ruby基础类型,动态特性,代码块
#Ruby内置基础数据类型 NilClass,TureClass,FalseClass,Time,Date,String,Range,Struct,Array,Hash #Numerice 1.分为I ...
- ruby json解析&生成
JSON 通常用于与服务端交换数据. 在接收服务器数据时一般是字符串. 我们可以使用 JSON.parse() 方法将数据转换为 ruby 对象. 一. json字符串解析 require 'json ...
- Ruby 趣学笔记(一)
Ruby 趣学笔记(一) 本文写于 2020 年 5 月 6 日 Ruby 趣学笔记(一) 变量 变量声明 变量类型 常量 输出 字符串 字符串操作 Array 数组的遍历 数组的连接 怎么判断该变量 ...
- 如何优雅地使用Sublime Text
Sublime Text:一款具有代码高亮.语法提示.自动完成且反应快速的编辑器软件,不仅具有华丽的界面,还支持插件扩展机制,用她来写代码,绝对是一种享受.相比于难于上手的Vim,浮肿沉重的Eclip ...
- sublime3 插件
Sublime Text 3能用支持的插件推荐 从二月份用测试版本build 3012开始用sublime text 3,虽然很多插件在sublime text 3不工作了,因为sublime tex ...
- 如何优雅地使用 Sublime Text
Sublime Text:一款具有代码高亮.语法提示.自动完成且反应快速的编辑器软件,不仅具有华丽的界面,还支持插件扩展机制,用她来写代码,绝对是一种享受.相比 于难于上手的Vim,浮肿沉重的Ecli ...
- 【网络资料】如何优雅地使用Sublime Text3
如何优雅地使用Sublime Text3 Sublime Text:一款具有代码高亮.语法提示.自动完成且反应快速的编辑器软件,不仅具有华丽的界面,还支持插件扩展机制,用她来写代码,绝对是一种享受.相 ...
- 【sublime】插件安装:包管理器——Package Control
首先,按CTRL+`,打开控制台 粘贴下面的代码,之后回车 如果是sublime3 import urllib.request,os,hashlib; h = '7183a2d3e96f11eea ...
随机推荐
- 【C#】C#容易忽视的错误
1.string 拼接站内存,前提是字符串比较多的时候string 字符串类型拼接占内存,解决方法就是用 StringBuilder和String.Format2.不知道内置的验证数据类型的方法. ; ...
- 【Python】[面向对象高级编程] 多成继承,定制类,使用枚举
1.多成继承 class SmallDog(Animal,Dog) pass MixIn就是一种常见的设计. 2.定制类类似__slots__这种形如 __xxx__ 的变量或者函数名,在python ...
- 关于Deprecated: mysql_result: The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in
require_once('connect.php'); $sql = "select * from introduce"; \(query = mysql_query(\)sql ...
- jsp如何自定义tag的标签库?
虽然和上一次的使用自定义的tld标签简化jsp的繁琐操作的有点不同,但是目的也是一致的.自定义tag比较简单. 1.新建tag标签 在WEB-INF目录下新建一个tags的文件夹,是自定义tag标签的 ...
- Java Web的传值汇总(含JavaBean)
前言: 其实JavaBean就像asp.net MVC上的Model传值一样.
- Finite State Machine 是什么?
状态机(Finite State Machine):状态机由状态寄存器和组合逻辑电路构成,能够根据控制信号按照预先设定的状态进行状态转移,是协调相关信号动 作.完成特定操作的控制中心. 类 ...
- <<< html编码中js和html编码不一致导致乱码
在html中,有时把编码设置成UTF-8之后,引入js,页面不会有乱码,但是有关js的东西会出现乱码, 大概问题就是js默认编码不是UTF-8, 解决办法:将js文件用记事本打开,在另存为,保存的时候 ...
- python2-gst0.10制作静态包的补丁 v1.1
gst制作成了静态库,而python2的gst有多个动态库引用gst的库 因此,想了一个办法将python2所需要的gst打包成一个单独的共享库 办法就是,将python2_gst所有的.so先制作成 ...
- Java 对象 及 对象的应用
http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=30149799&id=4942380原文地址
- ArcEngine地图窗口指定区域导出指定DPI多格式---delphi/C#实现
delphi/C#实现,其他语言稍微改下就行了.AE的编码各个语言都差不多,这里也没用到某一语言的特性. 函数特点: 1.可以精确导出指定范围的图形要素 2.支持多格式.TIF, .EMF,.GIF, ...