美文网首页程序员
ruby语言命名规范

ruby语言命名规范

作者: lavender21 | 来源:发表于2016-12-28 13:05 被阅读488次

    ruby语言有一个很好的优点就是指定了一套规则,我们无须定义这个变量是什么种类,只需遵循某种命名方式就可以知道这个变量是什么种类的。

    • 局部变量
    • 全局变量
    • 实例变量
    • 类变量
    • 常量
    • 类名模块名
    • 方法名

    局部变量

    变量在程序中的有效范围是局部的。也就是本地变量。以英文字母或者_开头。像下面这样的变量名在ruby程序中都被视为局部变量。

    temp = "this is a local variable"
    

    全局变量

    顾名思义,就是在整个程序中都可以访问的,全局变量的值在程序中任何地方都可以修改。$开头。但我们一般不推荐使用全局变量。

    $temp = "this is a global variable"
    

    实例变量

    @开头,每new一个实例,每个实例就会对应有自己的实例变量。只要实例存在,实例变量的值就不会消失。

    class HelloWorld
         def initialize(myname = "ruby")
                @name = myname
         end
         def hello 
                puts "Hello,world. I am #{@name}"
         end
    end
    
    bob = HelloWorld.new("BOb")
    alice = HelloWorld.new("Alice")
    ruby = HelloWorld.new
    
    bob.hello
    alice.hello
    ruby.hello
    

    类变量

    @@开头,所有实例可以共享的变量。在这里顺便说说实例变量和类变量的区别。在上面的例子中,bob``alice``ruby它们都有各自的@name变量,不会相互影响。但类变量不会,它们可以共享。

    class C
        @@name = "java"
        def initialize(myname = 'python')
            @name = myname
        end
        def hello 
            puts "实例变量#{@name}"
            puts "类变量#{@@name}"
        end
        def set_class_name(name)
            @@name = name
        end
        def set_name(name)
            @name = name
        end
    end
        
    c1 = C.new
    c2 = C.new
    print "初始状态","\n\n"
    print "实例1 "
    c1.hello
    print "实例2 "
    c2.hello
    print "实例1修改实例变量和类变量","\n\n"
    c1.set_name('ruby')
    c1.set_class_name('c++')
    print "实例1 "
    c1.hello
    print "实例2 "
    c2.hello
    print "实例2修改实例便量和类变量","\n\n"
    c2.set_name('javascript')
    c2.set_class_name('c#')
    print "实例1 "
    c1.hello
    print "实例2 "
    c2.hello
    
    

    运行结果:

    Screenshot from 2016-12-28 13-03-10.png

    在这个例子中,修改实例变量不会影响其他实例当中的值,但修改类变量会相互影响。这个有点像javascript当中的原型属性和实例属性。

    常量

    以大写字母开头,内置的一些常量是完全大写的,像ARGV等。

    类名和模块名

    当出现多个单词组合的类名模块名时,一般以首字母大写,注意,这里不是规定,而是习惯。上面的变量和常量是规定。

    class HelloWorld
       ....
    end
    

    方法名

    当出现多个单词组合的方法名时,小写用_隔开。这个同样也是习惯。不过养成一个良好的编程习惯是很重要的。

    def sort_list_by_name
        ...
    end
    

    相关文章

      网友评论

        本文标题:ruby语言命名规范

        本文链接:https://www.haomeiwen.com/subject/aolyvttx.html