zoukankan      html  css  js  c++  java
  • ruby简单的基础 4

    后缀标点符号


    =结尾
    假设方法名字以=结尾的,那么在调用此方法时能够省略这个=。


    ?结尾
    作为一个实用惯例,那些返回布尔值的方法通常都有一个以问号结尾的名字。


    。结尾
    这个命名惯例通常时对两种方法区分:以感叹号结尾的方法一般会改变调用它们的对象,不以感叹号结尾的方法则不会改动调用它们的对象。而是改动原始对象的一个拷贝。


    圆括号
    在ruby中,圆括号一般是可选的而且一般都被省略掉,尤其是在调用那些不带參数的方法时更是如此。






    字符串内插

    由双引號“”引起来的字符串中能够包括不论什么ruby表达式。前提是这些表达式包括在分界符#{和}里。
    分界符之间的表达式的值将被转换成一个字符串(通过调用to_s方法),这个字符串将替换原字符串中的表达式文本以及分界符。
       num = 2
       str = "xiao song"
       puts "num is : #{num},str is : #{str}"




    表达式和操作符

    ruby中差点儿全部的语句实际上时表达式。可是它们并非都会返回有意思的值。
    和大多数语言一样,ruby中的表达式通常由变量和操作符构成。


    很多ruby的操作符都是作为方法来实现的。而且类能够依照它们的需求来定义或重载这些方法。
         

    字面量和keyword

    字面量就是像 1。1.0,“hello”这样的值,它们时直接嵌入在您的程序文本中的。


    某些rubykeyword是主要的表达式,如
    nil  求值为nil,NilClass类
    true 求值为TureClass类的单例实例,是一个代表布尔值ture的对象。
    false 求值为FalseClass类的单例实例,是一个代表布尔值false的对象。


    self 求值为当前对象。


    变量引用

    一个变量就是一个值的名字,通过赋值表达式能够创建变量并对其赋值。当一个变量名不是出如今赋值操作的左側时,它就是一个变量引用表达式,而且会被求值成该变量的值。
    one = 1.0 #赋值表达式,把1.0赋值给one
    test = one #one 求值表达式。求值成1.0并赋值给test


    未初始化的变量

    类型        是否必须初始化      没有初始化后果
    类变量 是   抛出NameError
    实例变量 否(默觉得nil)        假设调用ruby解释器使用-W选项,会发出警告
    全局变量 否(默觉得nil)        假设调用ruby解释器使用-W选项,会发出警告
    局部变量     否(默觉得nil) 




    常量引用

    依照惯例,常量名都是全部大写,而且使用下划线切割单词,如PAGE_NUM。
    ruby的类和模块名也是常量。但依照惯例,它们採用驼峰时写法。如BigPerson。


    方法调用

    一个方法调用表达式由4部分组成
    1、一个随意的表达式,它的值就是将要在其上调用该方法的对象。这个表达式后接分隔符.或者::,然后再接方法名。

    表达式和分隔符都是可选的。假设它们被省略了,就会在self上调用该方法。
    2、被调用的方法名字。

    它必须存在。


    3、将要传递的參数值。參数列表能够置于一对圆括号里,可是通常圆括号都是可选的。

    假设有多个參数。他们将被逗号隔开。
    4、一个可选的代码块。

    它位于一对花括号或者一个do/end中。






    并行赋值

    1、左值右值的数量相等
    x,y,z = 1,2,3  # x = 1,y = 2,z = 3
    这样的情况下,第一个右值赋给第一个,第二个右值给第二个。。


    2、一个左值,多个右值
    x = 1,2,3 # x = [1,2,3]
    这样的情况下,ruby会创建一个数组来容纳全部右值,并把这个数据赋给左值
    3、多个左值,一个右值
    x,y,z = [1,2,3] # x =  1,y = 2,z = 3
    x = [1,2] # x = [1,2]
    x, = [1,2] # x = 1
    这样的情况下,假设右值是一个数组。ruby会扩展该数组。这样一来每一个数组元素都会变成一个右值。


    假设右值不是一个数组,可是实现了to_ary方法,那么ruby就会调用此方法而且扩展其返回的数组。


    4、左值多于右值
    x,y,z = 1,2 #x = 1,y = 2,z = nil
    这样的情况下。未被赋值的左值会被赋值nil
    5、右值多于左值
    x,y = 1,2,3 # x = 1, y = 2,3木有赋给不论什么变量
    这样的情况下,多余的右值会被丢弃。

  • 相关阅读:
    Daily Scrum 11.20
    Daily Scrum 11.19
    Daily Scrum 11.18
    Daily Scrum 11.17
    Daily Scrum 11.16
    Daily Scrum 11.15
    Loj10222佳佳的 Fibonacci
    CH3801Rainbow的信号
    js仓库。。。
    【UVa1635】Irrelevant Elements
  • 原文地址:https://www.cnblogs.com/gccbuaa/p/6791173.html
Copyright © 2011-2022 走看看