#!/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基本类型的更多相关文章

  1. Ruby混合类型

    当一个类拥有可以从多个父类继承的特点,类应该显示多重继承. Ruby没有直接支持多继承,但Ruby模块有另一个精彩使用.他们几乎消除多重继承的需要,提供了一个工厂,称为混入. 混合类型给一个精彩的控制 ...

  2. Ruby基础类型,动态特性,代码块

    #Ruby内置基础数据类型 NilClass,TureClass,FalseClass,Time,Date,String,Range,Struct,Array,Hash #Numerice 1.分为I ...

  3. ruby json解析&生成

    JSON 通常用于与服务端交换数据. 在接收服务器数据时一般是字符串. 我们可以使用 JSON.parse() 方法将数据转换为 ruby 对象. 一. json字符串解析 require 'json ...

  4. Ruby 趣学笔记(一)

    Ruby 趣学笔记(一) 本文写于 2020 年 5 月 6 日 Ruby 趣学笔记(一) 变量 变量声明 变量类型 常量 输出 字符串 字符串操作 Array 数组的遍历 数组的连接 怎么判断该变量 ...

  5. 如何优雅地使用Sublime Text

    Sublime Text:一款具有代码高亮.语法提示.自动完成且反应快速的编辑器软件,不仅具有华丽的界面,还支持插件扩展机制,用她来写代码,绝对是一种享受.相比于难于上手的Vim,浮肿沉重的Eclip ...

  6. sublime3 插件

    Sublime Text 3能用支持的插件推荐 从二月份用测试版本build 3012开始用sublime text 3,虽然很多插件在sublime text 3不工作了,因为sublime tex ...

  7. 如何优雅地使用 Sublime Text

    Sublime Text:一款具有代码高亮.语法提示.自动完成且反应快速的编辑器软件,不仅具有华丽的界面,还支持插件扩展机制,用她来写代码,绝对是一种享受.相比 于难于上手的Vim,浮肿沉重的Ecli ...

  8. 【网络资料】如何优雅地使用Sublime Text3

    如何优雅地使用Sublime Text3 Sublime Text:一款具有代码高亮.语法提示.自动完成且反应快速的编辑器软件,不仅具有华丽的界面,还支持插件扩展机制,用她来写代码,绝对是一种享受.相 ...

  9. 【sublime】插件安装:包管理器——Package Control

    首先,按CTRL+`,打开控制台   粘贴下面的代码,之后回车 如果是sublime3 import urllib.request,os,hashlib; h = '7183a2d3e96f11eea ...

随机推荐

  1. iOS --- DIY文件名批量修改

    批量修改文件名: // 1.创建文件管理 NSFileManager *filemanager =[NSFileManager defaultManager]; // 2. 获得所有文件夹路径 NSS ...

  2. PHP "延迟静态绑定" 功能,static

    从这个名字的定义提取出两个关键点,第一点静态,也就是说这个功能只适用于静态属性或静态方法.第二点延迟绑定,这个根据下面代码就可以很好的理解 看一下这个例子: class A{ static $name ...

  3. MFC用户自定义消息

    之前做过佳能相机和位移平台的额二次开发,当时遇到一个棘手的问题,就是位移平台如何知道相机已经拍完照了,或者相机如何知道位移平台已经运行到指定位置,当时为了方便采用了定时器来定时检测位移平台的位置,结果 ...

  4. DevExpress.chartContro控件保存图片和打印图片

    private void pictureBox1_Click(object sender, EventArgs e) { ////实例化打印对象 PrintDocument print = new P ...

  5. noip2016十连测round3

    A:平均数 题意:有一天,小 A 得到了一个长度为 n 的序列. 他把这个序列的所有连续子序列都列了出来,并对每一个子序列都求了其平均值,然后他把这些平均值写在纸上,并对它们进行排序,最后他报出了第 ...

  6. Alpha阶段第六次Scrum Meeting

    情况简述 Alpha阶段第六次Scrum Meeting 敏捷开发起始时间 2016/10/27 00:00 敏捷开发终止时间 2016/10/28 00:00 会议基本内容摘要 提出了目前阶段遇到的 ...

  7. JavaScript 中对内存的一些了解

    在使用JavaScript进行开发的过程中,了解JavaScript内存机制有助于开发人员能够清晰的认识到自己写的代码在执行的过程中发生过什么,也能够提高项目的代码质量.其实关于内存的文章也有很多,写 ...

  8. Logistic Regression - Formula Deduction

    Sigmoid Function \[ \sigma(z)=\frac{1}{1+e^{(-z)}} \] feature: axial symmetry: \[ \sigma(z)+ \sigma( ...

  9. backup mysql

    #!/bin/bashcd /home/Licw/backup_openDBNow=$(date +"%m-%d-%Y--%H:%M:%S")#echo $NowFile=$Now ...

  10. 个人学习记录2:ajax跨域封装

    /** * 跨域提交公用方法 * @param param 参数 * @param url 跨域的地址 * @param callFun 回调函数 callFun(data) */ function ...