Day1 <Define Object,Variable,Constant>

Object, 基本上任何一本编程书籍我看到这个字眼都是直接漂过去的,“不就是个概念嘛 面向对象编程 云云...”

今天我才看到红宝书的第一句话是先解释什么是Object的。

Object 是表现数据的基本单位

对的 这是一种表现,我想表现1是一个整数 我想表现1.15是一个浮点数,我想表现“1”是一个字符。
然而对象是有类别,东西多了自然要归类,1和1.1 向上看齐的话就是数值,平行来看才有什么整数,浮点数,往下看 维度再次拉低 就还会有所谓的自然数 负数 什么的。

对象和类别的关系

  • 数值 Numeric
  • 字符串 String
  • 数组 Array
  • 散列 Hash
  • 正则表达式 Regexp
  • 文件 File
  • 符号 Symbol

平时我们会说 “abc”是一个String类的对象,其实也可以说“abc”也是一个String类的实例(Instance)。

Variable 变量

变量是有作用域的,作用域其实可以理解为这个变量的 势力范围 ,就好比你在美国唐人街提二龙湖大哥的名号是不会有人理你的。反过来,你随便抓一个古惑仔 问他老大是谁 他和他老大是哪个堂口的 总是会问出来的。

局部变量和全局变量

我这有一个例子

#---TwoDragonLake.rb 
$group.push("黑社会") #全局变量 因为各国叫法不同 所以我用Array类型来存
aLittleBoss = "二龙湖浩哥" #局部变量  出了葫芦屯还有人认?

那么这个时候 浩哥来日本了

#----Yakuza.rb 
$LOAD_PATH.unshift(File.dirname(__FILE__))

$group = Array.new
$group.push("暴力团") #日本黑社会的统称吧
boss = "山田"

#---这个时候浩哥带队出现了
require "sub"
#---这个时候警察开始盘问了
puts "你们是谁?"
print $group
puts "------------------------"
puts "这里谁是扛把子?"
puts boss

你们觉得输出会是什么?条子是出现在Yakuza.rb这个地盘的 他们如果询问扛把子是谁?肯定不会问浩哥的,这里的扛把子只有一个,但全局变量却有两个group[0] & group[1] 条子都知道你们是黑社会 但小头目只认识本地的这个。 这就是局部和全局 在我的理解。

Constant 常量

常量 在我的理解就是 只能赋值一次的变量,而且是大写的。 Just it is.

pseudo-variable 伪变量

self true false nil

多重赋值

a , b, c = 1, 2 # => [1,2,nil]
a,b,c = 1,2,3,4,5 #=> [1,2,3]

#最实用的是这个
a,*b,c = 1,2,3,4,5 #=> [1,[2,3,4],5]

还有就是用Array赋值,不知道是不是Ruby独有的特性 反正很贴心

arr = [1,2,3]
a,b = arr
a # => 1
b # => 2

ary = [1,[2,3,4],5]
a,b,c = ary
#b => [2,3,4]
#也可以这么写
 a,(b1,b2),c = ary
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,742评论 18 399
  • 1.OC里用到集合类是什么? 基本类型为:NSArray,NSSet以及NSDictionary 可变类型为:NS...
    轻皱眉头浅忧思阅读 1,393评论 0 3
  • (一)Java部分 1、列举出JAVA中6个比较常用的包【天威诚信面试题】 【参考答案】 java.lang;ja...
    独云阅读 7,137评论 0 62
  • 周二我们去了上海科技馆,体验了迷你地震,消除了对地震的恐惧,知道了真正发生地震时,不要惊慌,迅速找到三角处躲藏。虽...
    葫芦妈1010阅读 223评论 0 1
  • 今天是我的生日。 中国人在习俗上,过得是阴历的生日。所以,今天,没有人对我说--生日快乐!
    风雨同舟_f997阅读 174评论 3 0