ruby简单的基础

好久没写记录东西了,最近决定记录写ruby方面的东西,大家一起学习。

ruby 基础语法

1、注释

单行注释 #
#开始到行末是单行注释

多行注释 
=begin

=end
多行注释以=begin开始 以=end结束,
=begin和=end前不能有其他字符,包括空格。
一般=begin 和 =end独占一行,这样看起来比较清晰。

Ruby中用;来表示一个语句结束。如果一行有多个语句,每个语句可以用;隔开,最后一个;可以省略。

换行表示一行结束,如果语句太长的话,我们可以用\连接下一行,表示这行还没有结束。

#puts "this is a line01"
puts "hello,world!"

=begin
puts "this is a line02"
puts "this is a line03"
=end
puts "this is a line04"

puts "this is a mutiple"  " line..."

=begin puts "hello"
=end
puts "dear.."

2、分隔符

3、关键字

模块定义:module
类定义:class
方法定义:def
条件语句:if,then,else,elsif,case,when,unless
循环语句:for,in,while,until,next,break,do
逻辑判断:not,and,or
逻辑值:true,false
空值:nil
异常:rescue,ensure
块的起止:begin,end
嵌入模块:BEGIN,END
方法返回:return
别名:alias

4、运算符

和其他语言差距不大,不多说啦。
逻辑或 or
逻辑与 and
没有 i++ ;这样的东西,你因该 i += 1;

5、标示名

ruby的标示名区分大小写,标示符名字的第一个字符表明了它的用法。
变量首字母后可以跟数字、字母、下划线任意组合,但是@后面不可以直接跟数字。

局部变量、方法参数、方法名字 应该用一个小写字母或者下划线开头
全局变量 应该用美元符$作为开头
实例变量 应该用@开头
类变量 应该用@@开头
类名、模块名、常量 应该用大写字母开头

6、数据类型

ruby的数据类型有:数字、字符串、数组、哈希表、区间、正则

数字
整数:1,110
浮点:1.0,110.0,11.1e4,浮点小数点后必须跟数字,11.e5是错误的

字符串
‘’或“” 之间的字符

数组
数组的每个元素可以是不同的类型。

区间
1..6 表示 1,2,3,4,5,6;左闭右闭区间 []
1...6 表示 1,2,3,4,5; 左闭右开区间 [)

7、条件运算符

8、条件判断

单行if语句
1、if 条件 then 语句1;语句2;语句3;end
2、(语句1;语句2;语句3; ...) if 条件

多行if语句

if 条件1
语句1;
elsif 条件2
语句2;
end

unless 条件 和 if not 条件一样,不习惯这种写法。

case 对象
when 可能性1
语句1
when 可能性2
语句2
else
语句3
end

和我们熟悉的switch 类似

9、循环

单行while
(语句1;语句2;...) while 条件

多行while
while 条件
语句;
end

for 变量 in 对象(数组,区间,集合)
语句1;
语句2;
end
和oc中的for in 类似

在循环体中,如果遇到:
break,跳出当层循环
next,忽略本次循环的剩余部分,开始下一次循环,和continue类似
redo,重新开始循环,但是还是从本次开始
retry,从头开始这个循环体

10、times,upto,downto,each,step

times,upto,downto 是Integer的方法
num.times{

}
或者
num.times do
end
重复一个代码块 num次

num.upto(limit) {|i| block}
从num到limit,迭代block,i >= num, i <=limit

num.downto(limit) {|i| block}
从num到limit,迭代block,i <= num, i >=limit

step是区间的方法

each是数组的方法
数组.each {|i| block}
遍历一边对象中的元素

5.times {
  puts "i love you.."
}
5.times do
  puts "i love you too.."
end

1.upto(5){|i| puts i}

5.downto(2) do
  |i| puts i
end

(1..6).each { |i| puts i}

1.step(10,3) { |i| puts i}
puts "...."
10.step(1,3) { |i| puts i}

ruby简单的基础,布布扣,bubuko.com

时间: 2024-08-10 21:18:42

ruby简单的基础的相关文章

ruby简单的基础 2

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简单的基础 5

方法和代码块 在Ruby中,{}或do...end之间的代码是一个代码块.代码块只能出现在一个方法的后边,它紧接在方法最后一个参数的同一行上,一般由yield关键字调用代码块中的代码. 方法是一个有名的代码块,是与一个或者多个对象相关联的参数化代码.调用方法时必须要给出方法名.所在对象(接受者),以及零个或者多个参数值,方法中最后一个表达式的值将作为方法调用的返回值. 代码块不是ruby可操作的对象,一般我们用一个Proc对象代表一个代码块.有两种方式的Proc对象,一种是proc,一种是lam

ruby简单的基础 3

类 Ruby中一切都是对象,包括一个常数.比如可以用.class属性来查看一个对象的类型,你可以看下1.class,会发现常数1的类型是Fixnum,1不过是Fixnum的一个实例. Ruby中的类以class开始 以end结束,类名首字母的约定是大写.Ruby中的方法以def开始 以end结束,方法名首字母的约定是小写.Ruby中的局部变量名首字母的约定是小写.Ruby中的构造函数名称为initialize.Ruby中的成员变量(实例变量)前导@符,在initialize里进行声明与初始化.R

ruby简单的基础 6

模块 模块同类一样,也有 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   #=>  'he

ruby简单的基础 4

后缀标点符号 =结尾假设方法名字以=结尾的,那么在调用此方法时能够省略这个=. ?结尾作为一个实用惯例,那些返回布尔值的方法通常都有一个以问号结尾的名字. .结尾这个命名惯例通常时对两种方法区分:以感叹号结尾的方法一般会改变调用它们的对象,不以感叹号结尾的方法则不会改动调用它们的对象.而是改动原始对象的一个拷贝. 圆括号在ruby中,圆括号一般是可选的而且一般都被省略掉,尤其是在调用那些不带參数的方法时更是如此. 字符串内插 由双引號""引起来的字符串中能够包括不论什么ruby表达式.

Linux简单的基础命令

CentOS6.5的一些简单的基础命令和大家分享一下 cd  进入某个路径 cd .. 返回上一级 cd - 返回上一次的路径 cd~ 进入家目录 touch  创建新文件 mkdir  创建新目录 mkdir -p  递归创建新目录 rm -f  免交互删除 rm -rf  免交互递归删除 cp  从某个路径复制到某个路径 cp -r  递归式从某个路径复制到某个路径 mv  从某个路径移动到某个路径  ls  列表文件内的目录及文件 ls -a  列表文件内的目录及文件包括隐藏文件 ls -

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

这次,我们来继续学习博弈论的知识.今天我们会学习更多的基础模型,以及SJ定理的应用. 首先,我们来看博弈论在DAG上的应用.首先来看一个小例子:在一个有向无环图中,有一个棋子从某一个点开始一直向它的出点移动,双方轮流操作,无法操作者输,问是否先手必胜. 考虑一下我们之前的Nim游戏,如果我们把后继状态看成后继点的话,不难发现Nim游戏的互相转移也是一个DAG.因此,DAG上出度为0的点的sg值为0,再用上一篇博客提到的mex操作来求每个点的值就可以了(注意,这并不是一个"大"子图,不能

jQuery很简单很基础的

一.了解jQuery 1.jQuery是一个JavaScript库:极大地简化了JavaScript编程:易学. 2.jQuery库可以通过一行简单标记添加到网页中 特征:HTML元素选取.操作:CSS操作:HTML事件函数:JavaScript特效和动画:HTML DOM遍历和修改:AJAX:Utility. 3.添加jQuery库(位于一个JavaScript文件中,其中包含了所有的jQuery函数),<script>标签应该位于页面的<head>部分 1 2 3 <he

多线程一些简单的基础

一.进程:进程是受操作系统管理的基本运行单位: 二.线程:在进程中独立运行的子任务: 三.多线程的好处: 可以在同一时间内运行更多不同种类的任务: 单任务的特点是排队执行,也就是同步,CPU利用率很低: 多任务的特点也就是多线程,同时执行,异步操作,CPU快速切换,提高利用率: 四.Java里面的多线程基础 1.实现多线程的两种方式,继承Thread类,实现Runnable接口,一般最好实现Runnable接口,因为Java是单继承机制,如果继承Thread类,就不能继承其他类,会给程序带来很大