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

方法和代码块 在Ruby中.{}或do...end之间的代码是一个代码块.代码块只能出如今一个方法的后边,它紧接在方法最后一个參数的同一行上,一般由yieldkeyword调用代码块中的代码. 方法是一个有名的代码块.是与一个或者多个对象相关联的參数化代码. 调用方法时必需要给出方法名.所在对象(接受者),以及零个或者多个參数值,方法中最后一个表达式的值将作为方法调用的返回值. 代码块不是ruby可操作的对象.一般我们用一个Proc对象代表一个代码块.有两种方式的Proc对象,一种是proc.一…
后缀标点符号 =结尾假设方法名字以=结尾的,那么在调用此方法时能够省略这个=. ?结尾作为一个实用惯例,那些返回布尔值的方法通常都有一个以问号结尾的名字. .结尾这个命名惯例通常时对两种方法区分:以感叹号结尾的方法一般会改变调用它们的对象,不以感叹号结尾的方法则不会改动调用它们的对象.而是改动原始对象的一个拷贝. 圆括号在ruby中,圆括号一般是可选的而且一般都被省略掉,尤其是在调用那些不带參数的方法时更是如此. 字符串内插 由双引號""引起来的字符串中能够包括不论什么ruby表达式.…
1.代码块 代码块是用大括号或者do...end括起来的一系列代码.{ #this is a block} do #this is a blockend [1,2,3,4,5].each {|i| puts i} [1,2,3,4,5].each do |i|puts iend这2中写法效果是一样的.用{}可能更像C的风格 2.作用域 Ruby程序仅仅会在3个地方关闭前一个作用域.同一时候打开一个新的作用域: 类定义, class - end模块定义, module - end方法定义. def…
Ruby安装好之后,我们就可以来实践Ruby语言了. 以下是一些学习到的简单基础知识: 1. 如何执行Ruby文件? 我们编写的Ruby文件是以rb为后缀名的,例如:XXX.rb.当要执行ruby文件时,可以打开命令行窗口,进入到Ruby文件所在的目录下,通过命令ruby XXX.rb来执行,可以看如下示图: 2. print方法:用于打印字符串功能,print ("Hello", " Ruby !", "\n")   print "H…
“循环”会用在程序中的各种地方.而在循环的地方善用“迭代器”,则是熟练进行Ruby程序设计的重要关键. 不过,迭代器确实有比较抽象的地方,语法也有点怪异(尤其是yield的用法),光是依靠文字说明.看一两个示例,还是不太好懂.其实,当初笔者开始学习Ruby时就卡在这里,很久都搞不懂. 所以在本章中,将通过很多的示例,来慢慢探索Ruby的迭代器. 20.1   迭代器与区块调用 首先来整理一下用词和术语.在Ruby中说到“迭代器”,通常可能有两种意义. 所谓的“迭代器”,本来是指在反复(itera…
类 Ruby一切都是对象,它包含了一个恒定.例如,可以使用.class物业查看对象的类型,你可以看一下1.class.你会发现常1类型是Fixnum,1但它是Fixnum的一个例子. Ruby本类class开始 随着end结束.类名首字母的约定是大写.Ruby中的方法以def開始 以end结束,方法名首字母的约定是小写.Ruby中的局部变量名首字母的约定是小写. Ruby中的构造函数名称为initialize.Ruby中的成员变量(实例变量)前导@符,在initialize里进行声明与初始化.R…
# [Ruby 块]=begin1 块由大量代码构成2 块中代码包含在{}内3 从与其相同名称的函数调用4 可以使用yield语句调用块=enddef test p '在test方法内' yield p '又回到了test方法内' yieldend test {p '你在块内'}#也可以传递由参数的yielddef test yield 5 p '在方法内' yield 100endtest {|i| p "你在块#{i}内"} # 传递多个参数def test yield 5,100…
这次,我们来继续学习博弈论的知识.今天我们会学习更多的基础模型,以及SJ定理的应用. 首先,我们来看博弈论在DAG上的应用.首先来看一个小例子:在一个有向无环图中,有一个棋子从某一个点开始一直向它的出点移动,双方轮流操作,无法操作者输,问是否先手必胜. 考虑一下我们之前的Nim游戏,如果我们把后继状态看成后继点的话,不难发现Nim游戏的互相转移也是一个DAG.因此,DAG上出度为0的点的sg值为0,再用上一篇博客提到的mex操作来求每个点的值就可以了(注意,这并不是一个“大”子图,不能拆成子游戏…
using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks; namespace H.DAL { /// <summary> /// 数据库操作帮助类 /// 此段基础代码为SQLServer数据库帮助类 /// 如需操作MySQL…
模 像类似的模块,那里 class method 和 instance method.module 没有new不能生成对象的例子其中 class method 所谓的模块在模块化的方法,它能够直接调用. module Foo def self.hello puts 'hello world!' end def Foo.dear #module全局作用域内的self还是没有变,就是Module: puts 'dear..' end NUM = 100 end Foo.hello   #=>  'h…