zoukankan      html  css  js  c++  java
  • 《Rubu基础教程第五版》第四章笔记 对象、变量和常量

    Ruby也是万物皆对象的语言

    Ruby中内置的一些类

    Numeric  数值

    String     字符串

    Array     数组

    Hash     哈希

    Regexp  正则表达式

    File       文件

    符号     Symbol

    变量

    局部变量 (local variable)

    全局变量(global variable)

    实例变量(instance variable)

    类变量(class variable)

    局部变量已小写字母或者_开头,全局变量以$开头,实例变量以@开头,类变量以@@开头

    还有一个伪变量,为nil、true、false、self

    局部变量和全局变量  (这个跟Python的区别非常之大)

    在一个库里面,也就是Python中的模块,就是一个文件里面,定义的变量,Python中就是全局变量,但Ruby确实局部变量。

    该变量只能在库中进行使用,如果需要给库中的函数或者类使用,必须已传参的形式进行操作。

    全局变量更加夸张,当导入一个库的时候,会自动导入库中的全局变量,如果本地文件中的全局变量与库的重复,库中的全局变量会覆盖本地的

    1
    0
    shijianzhongdeMacBook-Pro:chapter_4 shijianzhong$ cat sub.rb 
    $x = 1
    x = 1
    shijianzhongdeMacBook-Pro:chapter_4 shijianzhong$ cat scopetest.rb 
    $x = 0 # 定义全局变量
    x = 0
    
    require_relative "sub"
    
    p $x
    p x
    shijianzhongdeMacBook-Pro:chapter_4 shijianzhong$ 
    

    所以在实际开发中要少使用$x这样的全局变量.

    常量一般用全是大写的字符定义,这个与Python类似

    >> TT = 1
    => 1
    >> TT =2
    (irb):2: warning: already initialized constant TT
    (irb):1: warning: previous definition of TT was here
    => 2
    >> 
    

     常量的值也可以修改,但会有警告

    保留字

    就像end def class 这些

    4.6多重赋值,这里的操作基本跟Python差不多,用*来接收不定长参数

    合并执行多个赋值

    >> a,b,*c = 1,2,3,4,5
    => [1, 2, 3, 4, 5]
    >> p a,b,c
    1
    2
    [3, 4, 5]
    => [1, 2, [3, 4, 5]]
    >> a, *b, c = "12345"
    => "12345"
    >> p a,b,c
    "12345"
    []
    nil
    => ["12345", [], nil]
    >> a, *b, c = 1,2,3,4,5
    => [1, 2, 3, 4, 5]
    >> p a,b,c
    1
    [2, 3, 4]
    5
    => [1, [2, 3, 4], 5]
    >> 
    

    交换变量的值

    >> a, b = 1 , 2
    => [1, 2]
    >> a
    => 1
    >> b
    => 2
    >> a,b = b ,a
    => [2, 1]
    >> a
    => 2
    >> b
    => 1
    >> 
    
    >> 
    >> a,b,c = [1,2,3]
    => [1, 2, 3]
    >> a
    => 1
    >> b
    => 2
    >> c
    => 3
    >> a, = [10,11,12]   # 这种写法比较骚
    => [10, 11, 12]
    >> a
    => 10
    >> 
    
  • 相关阅读:
    点击弹出层以外的区域隐藏弹出层
    css3 animation 动画属性简介
    IdentityServer4 接入自己的用户体系
    分布式事务的实现
    微服务分布式数据管理的挑战
    微服务的数据自治
    SkyWalking 分布式追踪系统
    创建、改进和控制微服务API的版本和契约
    富领域模型和贫血领域模型
    cenos 安装git
  • 原文地址:https://www.cnblogs.com/sidianok/p/12977292.html
Copyright © 2011-2022 走看看