后缀标点符号

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

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

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

圆括号
在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木有赋给不论什么变量
这样的情况下,多余的右值会被丢弃。

ruby简单的基础 4的更多相关文章

  1. ruby简单的基础 5

    方法和代码块 在Ruby中.{}或do...end之间的代码是一个代码块.代码块只能出如今一个方法的后边,它紧接在方法最后一个參数的同一行上,一般由yieldkeyword调用代码块中的代码. 方法是 ...

  2. ruby简单的基础 2

    1.代码块 代码块是用大括号或者do...end括起来的一系列代码.{ #this is a block} do #this is a blockend [1,2,3,4,5].each {|i| p ...

  3. Ruby自学笔记(二)— Ruby的一些基础知识

    Ruby安装好之后,我们就可以来实践Ruby语言了. 以下是一些学习到的简单基础知识: 1. 如何执行Ruby文件? 我们编写的Ruby文件是以rb为后缀名的,例如:XXX.rb.当要执行ruby文件 ...

  4. ruby迭代起基础

    “循环”会用在程序中的各种地方.而在循环的地方善用“迭代器”,则是熟练进行Ruby程序设计的重要关键. 不过,迭代器确实有比较抽象的地方,语法也有点怪异(尤其是yield的用法),光是依靠文字说明.看 ...

  5. ruby简单的基本 3

    类 Ruby一切都是对象,它包含了一个恒定.例如,可以使用.class物业查看对象的类型,你可以看一下1.class.你会发现常1类型是Fixnum,1但它是Fixnum的一个例子. Ruby本类cl ...

  6. 【Ruby】【基础】

    # [Ruby 块]=begin1 块由大量代码构成2 块中代码包含在{}内3 从与其相同名称的函数调用4 可以使用yield语句调用块=enddef test p '在test方法内' yield ...

  7. [您有新的未分配科技点]博弈论进阶:似乎不那么恐惧了…… (SJ定理,简单的基础模型)

    这次,我们来继续学习博弈论的知识.今天我们会学习更多的基础模型,以及SJ定理的应用. 首先,我们来看博弈论在DAG上的应用.首先来看一个小例子:在一个有向无环图中,有一个棋子从某一个点开始一直向它的出 ...

  8. SQLHelper简单版(基础版)

    using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; usin ...

  9. ruby简单的基本 6

    模 像类似的模块,那里 class method 和 instance method.module 没有new不能生成对象的例子其中 class method 所谓的模块在模块化的方法,它能够直接调用 ...

随机推荐

  1. LINQ 的查询执行何时是延迟执行,何时是立即执行,以及查询的复用

    延迟执行的经典例子: 我们用 select ++i 就可以看到在foreach 时候,查询才被执行. public static void Linq99(){    int[] numbers = n ...

  2. webdriver高级应用- 精确比较页面截图图片

    判断两张图是否完全一致,如果存在任何不一致,会认为图片不匹配,代码如下: #encoding=utf-8 from selenium import webdriver import unittest, ...

  3. Leetcode4--->求两个排序数组的中位数

    题目:给定两个排序数组,求两个排序数组的中位数,要求时间复杂度为O(log(m+n)) 举例: Example 1: nums1 = [1, 3] nums2 = [2] The median is ...

  4. 常见python快捷键

    http://www.cnblogs.com/toutou/p/4778818.html Ctrl+/注释(取消注释)选择的行 Shift + Enter开始新行 Ctrl + Enter智能换行 T ...

  5. 如何用字体在网页中画icon

    一.用css雪碧图 1.简介 CSS Sprites在国内很多人叫css精灵,是一种网页图片应用处理方式.它允许将一个页面涉及到的所有零星图片都包含到一张大图中, 利用CSS的“background- ...

  6. JDBC 学习笔记(二)—— 详解 JDBC 的四种驱动类型

    JDBC 有四种驱动类型,分别是: JDBC-ODBC 桥(JDBC-ODBC bridge driver plus ODBC driver) 本地 API 驱动(Native-API partly ...

  7. Welcome-to-Swift-04集合类型(Collection Types)

    Swift提供了两种集合类型来存放多个值——数组(Array)和字典(Dictionary).数组把相同类型的值存放在一个有序链表里.字典把相同类型的值存放在一个无序集合里,这些值可以通过唯一标识符( ...

  8. iOS学习笔记40-日志重定向

    一.日志重定向 我们在iOS开发过程中,我们时常会使用NSLog打印到控制台的日志信息进行代码调试,但这样调试的前提是连接上Xcode.如果进行真机调试但同时又不能连接Xcode的时候,就不能直接在x ...

  9. 【bzoj4319】cerc2008 Suffix reconstruction 贪心

    题目描述 话说练习后缀数组时,小C 刷遍 poj 后缀数组题, 各类字符串题闻之丧胆.就在准备对敌方武将发出连环杀时,对方一记无中生有,又一招顺手牵羊,小C 程序中的原字符数组就被牵走了.幸运的是,小 ...

  10. hdoj--1010<dfs+奇偶剪枝>

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1010 题目描述:在n*m的矩阵中,有一起点和终点,中间有墙,给出起点终点和墙,并给出步数,在该步数情况 ...