• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Terry七月Ruby读书笔记(比较详细)第1/4页

    Page 3 概述

    ¨         解释执行:PythonRuby,交互性很好;

    ¨         编译执行:Pascal, C,速度较快。

    n         本地执行,如CC++

    n         虚拟机执行,如Java, C#

     

    ¨         动态语言,如JavaScriptRuby

    ¨         静态语言,如C++Java

     

    语言

    ¨         语法

    关键字

    ¨         语义

    ¨         语用

     

    松本行弘(Matz) 1993

    Ruby [`ru:bi](红宝石)

     

     

    Ruby 吸取了 perl 的正则表达式, python 的简单性可读性,smalltalk 的纯面向对象语法和单继承,LISP 的无穷嵌套的语法,Java的线程…

     

    Page 14 上手

    XP

    Cmd

    C:\Documents and Settings\Administrator>ruby -v

    ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32]

     

    第一种方式:ruby命令

    C:\Documents and Settings\Administrator>ruby -e 'print "hello world"'

    hello world

     

    ruby               运行ruby;

    -e                  执行后面的ruby脚本程序;

    print               打印显示;

    hello,world     要输出的内容。

     

    第二种方式:irb交互执行

    C:\Documents and Settings\Administrator>irb

    irb(main):001:0> print "hello world"

    hello world=> nil

    irb(main):002:0> exit

     

    exit: 退出irb交互式环境

     

    第三种方式:创建ruby脚本

    C:\Documents and Settings\Administrator>copy con helloworld.rb

    print "hello world"

    print "3*7=",3*7

    ^Z

    已复制         1 个文件。

     

    C:\Documents and Settings\Administrator>helloworld.rb

    hello world3*7=21

     

    Page 17 IDE

    ¨         Eclipse + RDTRuby Development Tools

    ¨         FreeRIDE+SciTE

    1.在SciTE编辑Ruby代码;

    2.保存为 .rb文件;

    3.菜单栏,工具->运行或者F5;

    Page 18 语法

    1.      注释

    单行注释       #                多行注释     =begin            =end

    Ruby的内嵌文档(Rdoc)注释,用ri命令从源文件中产生文档。

    Rdoc内嵌在ruby代码之中的,可以转换为html文档。

    ri命令,用来查看函数说明、类说明。函数说明、类说明应该放置在=begin和=end之中。注意:“=begin”一定要写在行首,也就是说,这一行前六个字符是“=begin”,之前不允许有空格。

    2.      分行

    用分号;表示语句结束。

    一行多个语句,用分号隔开,最后一个语句,分号可以省略,换行符表示一行结束。

    语句太长,可以在行末用符号 \ ,表示续行。

    3.      分隔符

    名称

    符号

    用途

    分号

    ;

    用来分隔一行中的多个语句

    圆括号

    (  )

    提高优先级;定义方法时容纳参数列表

    空格

     

    分隔字符;在可省略()的地方,代替()

    逗号

    ,

    隔开多个参数

    .

    将对象与它的方法隔开

    紧连的两个冒号

    ::

    域作用符,将模块(类)与它的常量隔开

    4.      关键字

    Ruby中的关键字如下:

    模块定义:

    module

    异常处理:

    rescue,ensure

    类定义:

    class

    对象引用:

    super,self

    方法定义:

    def,undef

    块的起始:

    begin/end

    检查类型:

    defined?

    嵌入模块:

    BEGIN,END

    逻辑值和空值:

    true,false,nil

    文件相关:

    __FILE__,__LINE__

    逻辑判断:

    not,and,or

    方法返回:

    return

    条件语句:

    if,then,else,elsif,case,when,unless

    别名:

    alias

    循环语句:

    for,in,while,until,next,break,do,redo,retry,yield

    BEGIN模块相当于C语言中的宏,END模块用来作一些收尾工作。有了

    require,include,应该取消BEGIN和END的语法定义。

    5.      运算符

    6.      标识名:

    常量,变量,方法,类和模块;

    大小写敏感;

    标识名第一个字符表明这个名字的用法。

    局部变量、方法参数和方法名称

    以小写字母开头或者下划线开头;

    类名、模块名和常量

    用大写字母开头。

    全局变量

    以美元符为前缀$;

    实例变量

    以@开头;

    类变量

    用@@开头;

    词首字母后面可以是字母、数字和下划线的任意组合;

    @后面不可以直接跟数字。

    Ruby程序代码用7位ACSII码来表示,通过语言扩展来支持 EUC,SJIS或UTF-8等8位编码系统。Ruby2.0版本将支持16位的Unicode编码。

    7.      类库

    可以直接使用:

    i) 关键字;

    ii) require或者include包含的类库中的类、方法;

    iii)从父类中继承得到的方法。

     

    puts

    每个参数后自动换行

    print

    不自动换行,换行用”\n”

    printf

    按格式输出,不自动换行

    gets

    从键盘或文件中读入数据

     

    C:\Documents and Settings\Administrator>ruby -e 'puts "hello","world"'

    hello

    world

     

    C:\Documents and Settings\Administrator>ruby -e 'printf "number:%f",3.2'

    number:3.200000

     

     

    注意:printf的参数之间用逗号隔开。

    C:\Documents and Settings\Administrator>ruby -e ' printf "number:%4.3f,string %s

    ",1.5,"hello world"'

    number:1.500,string hello world

     

    8.      数据类型

    类型

    分类

    说明及示例

    数字

    整数型

    0        八进制,

    0x  十六进制,0b  二进制

    浮点型

    字符串

    单引号  ‘'

     

    双引号  “”

     

    数组

    从0开始,每个元素可以不同类型

    例 [2.4,"thank you",[a,b,c],78]

    区间

    1..5

    1,2,3,4,5

    1…5

    1,2,3,4

    正则表达式

     

     

    9.      赋值运算

    交换变量a,b的值:

    a,b=b,a;

    注意括号:

    a = (b = 1 + 2) + 3                #a=6 ,b=3

    逗号,从左往右运算,分别赋给a,b,c

    x = 0                           #x=0

    a,b,c = x, (x+1), (x+2)           #a=0 ,b=1,c=2

    10.  条件运算

    ==

    等于

    !=

    不等于

    eql?

    比较两个对象的值、类型是否相等

    equal?

    比较两个对象在内存中地址是否相同

     

    小于

    大于

    =

    小于等于

    >=

    大于等于

    =~

    匹配正则表达式

    !~

    断言不匹配正则表达式

    ===

    右边的对象在左边区间内

    puts(0..9)===3.14  #true puts('a'..'f')==='c'    # true

    =>

    比较两个对象大小,大于1,等于0,小于-1.

    Ruby里,nil和false为假,其它都为真。

     

    11.  判断语句

    1. 单行if语句

    if    then    end

    (    ) if

    1. 多行if语句

    if    elsif    else    end

    1. unless条件语句

     

    unless

     

    if not

     

    1. case分支条件语句

     

    case

    when

    when

    else

    end

     

    12.  循环语句

    单行while

    (语句1;语句2;语句…)while条件

    多行while

    while  条件 

    语句,语句 

    end

    until直到

    until 跳出循环条件  语句

    until 条件=while not (条件)

    for…in循环

    for  变量  in  对象

       语句1; 语句2 ;  语句…

    end

     

    break,nextredoretry

    在循环体内,如果遇到:

    break

    跳出当层循环;

    next

    忽略本次循环的剩余部分,开始下一次的循环;

    redo

    重新开始循环,还是从这一次开始;

    retry

    重头开始这个循环体。

     

    times , upto , downto , each ,step

    语句

    运行结果

    3.times { print  "Hi!" }

    #Hi!Hi!Hi! 

    1.upto(9) {|i| print  i  if  i7 }

    #123456   

    9.downto(1){|i| print  i  if  i7 }

    #654321

    (1..9).each {|i| print  i  if  i7}

    #123456   

    0.step(11,3) {|i| print  i  }

    #0369     

     

    C:\Documents and Settings\Administrator>irb

    irb(main):001:0> 1.upto(9){|i| print i if i7}

    123456=> 1

    irb(main):002:0> 9.downto(1){|i|print i if i7}

    654321=> 9

    irb(main):003:0> (1..9).each {|i| print i if i7}

    123456=> 1..9

    irb(main):004:0> 0.step(11,3) {|i| print i}

    0369=> 0

     

    13.  异常

    Java

    try…catch…finally…throw

    Ruby

    begin/end…rescue…ensure…raise

    retry可以用在rescue中。可以只用rescue或ensure,两者都使用时,rescue必须在ensure前。

    14.  线程 

    1234下一页阅读全文
    您可能感兴趣的文章:
    • ruby 学习笔记(2) 类的基本使用
    • Ruby rails 页面跳转(render和redirect_to)
    • 在Ruby on Rails中使用Rails Active Resource的教程
    上一篇:ruby will_paginate的用法
    下一篇:Ruby进行文件信息输出实例代码
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Terry七月Ruby读书笔记(比较详细)第1/4页 Terry,七月,Ruby,读书,笔记,