• 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

  • 相关阅读:
    Pytest 参数化
    JmeterPerfMon Metrics Collector服务器性能监控插件的安装使用
    布同:基于JQuery的五子棋人机对战游戏设计与制作
    笔记:javascript学习
    布同:vim插件开发实例和讲解
    汤姆大叔文章列表
    布同:web版比赛实时算分系统的设计
    布同:pdf自定义分割(断章)
    布同:我的web后台开发技术层次图和经验感受
    技嘉主板B250M拆显卡
  • 原文地址:https://www.cnblogs.com/ToBeTheOne/p/5728572.html
Copyright © 2020-2023  润新知