源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2022-09-04 09:26 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Terry七月Ruby读书笔记(比较详细)第1/4页
[b]Page 3 [/b][b]概述[/b][b][/b]
¨         解释执行:PythonRuby,交互性很好; ¨         编译执行:Pascal, C,速度较快。 n         本地执行,如CC++ n         虚拟机执行,如Java, C#   ¨         动态语言,如JavaScriptRuby ¨         静态语言,如C++Java
[b][/b] 
语言 ¨         语法 关键字 ¨         语义 ¨         语用  
松本行弘(Matz) 1993 Ruby [`ru:bi](红宝石)   [img]http://img.1sucai.cn/uploads/article/2018010710/20180107100119_0_98728.gif[/img]  

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

  [b]Page 14 [/b][b]上手[/b][b][/b] XP Cmd
[b]C:Documents and SettingsAdministrator>ruby -v[/b] [b]ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32][/b]
  [b]第一种方式:[/b][b]ruby[/b][b]命令[/b][b][/b]
[b]C:Documents and SettingsAdministrator>ruby -e 'print "hello world"'[/b] [b]hello world[/b]
[b][/b]  ruby               运行ruby; -e                  执行后面的ruby脚本程序; print               打印显示; hello,world     要输出的内容。   [b]第二种方式:[/b][b]irb[/b][b]交互执行[/b][b][/b]
[b]C:Documents and SettingsAdministrator>irb[/b] [b]irb(main):001:0> print "hello world"[/b] [b]hello world=> nil[/b] [b]irb(main):002:0> exit[/b]
  exit: 退出irb交互式环境   [b]第三种方式:创建[/b][b]ruby[/b][b]脚本[/b][b][/b]
[b]C:Documents and SettingsAdministrator>copy con helloworld.rb[/b] [b]print "hello world"[/b] [b]print "3*7=",3*7[/b] [b]^Z[/b] [b]已复制         1 [/b][b]个文件。[/b] [b][/b]  [b]C:Documents and SettingsAdministrator>helloworld.rb[/b] [b]hello world3*7=21[/b]
[b][/b]  [b]Page 17 [/b]IDE ¨         Eclipse + RDTRuby Development Tools ¨         FreeRIDE+SciTE 1.在SciTE编辑Ruby代码; 2.保存为 [b].rb[/b]文件; 3.菜单栏,工具->运行或者F5; [b]Page 18 [/b][b]语法[/b][b][/b] [b]1.      [/b][b]注释[/b][b][/b] 单行注释       #                多行注释     =begin            =end Ruby的内嵌文档(Rdoc)注释,用ri命令从源文件中产生文档。 Rdoc内嵌在ruby代码之中的,可以转换为html文档。 ri命令,用来查看函数说明、类说明。函数说明、类说明应该放置在=begin和=end之中。注意:“=begin”一定要写在行首,也就是说,这一行前六个字符是“=begin”,之前不允许有空格。 [b]2.      [/b][b]分行[/b][b][/b] 用分号;表示语句结束。 一行多个语句,用分号隔开,最后一个语句,分号可以省略,换行符表示一行结束。 语句太长,可以在行末用符号 ,表示续行。 [b]3.      [/b][b]分隔符[/b][b][/b]
名称 符号 用途
分号 [b];[/b] 用来分隔一行中的多个语句
圆括号 [b](  )[/b] 提高优先级;定义方法时容纳参数列表
空格 [b][/b]  分隔字符;在可省略()的地方,代替()
逗号 [b],[/b] 隔开多个参数
[b].[/b] 将对象与它的方法隔开
紧连的两个冒号 [b]::[/b] 域作用符,将模块(类)与它的常量隔开
[b]4.      [/b][b]关键字[/b][b][/b] 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的语法定义。 [b]5.      [/b][b]运算符[/b][b][/b] [b]6.      [/b][b]标识名:[/b][b][/b] 常量,变量,方法,类和模块; 大小写敏感; 标识名第一个字符表明这个名字的用法。
局部变量、方法参数和方法名称 以小写字母开头或者下划线开头;
类名、模块名和常量 用大写字母开头。
全局变量 以美元符为前缀$;
实例变量 以@开头;
类变量 用@@开头;
词首字母后面可以是字母、数字和下划线的任意组合; @后面不可以直接跟数字。 Ruby程序代码用7位ACSII码来表示,通过语言扩展来支持 EUC,SJIS或UTF-8等8位编码系统。Ruby2.0版本将支持16位的Unicode编码。 [b]7.      [/b][b]类库[/b][b][/b] 可以直接使用: i) 关键字; ii) require或者include包含的类库中的类、方法; iii)从父类中继承得到的方法。  
puts 每个参数后自动换行
print 不自动换行,换行用”n”
printf 按格式输出,不自动换行
gets 从键盘或文件中读入数据
 
[b]C:Documents and SettingsAdministrator>ruby -e 'puts "hello","world"'[/b] [b]hello[/b] [b]world[/b]
 
[b]C:Documents and SettingsAdministrator>ruby -e 'printf "number:%f",3.2'[/b] [b]number:3.200000[/b]
    注意:printf的参数之间用逗号隔开。
[b]C:Documents and SettingsAdministrator>ruby -e ' printf "number:%4.3f,string %s[/b] [b]",1.5,"hello world"'[/b] [b]number:1.500,string hello world[/b]
[b][/b]  [b]8.      [/b][b]数据类型[/b][b][/b]
类型 分类 说明及示例
数字 整数型 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
正则表达式    
[b]9.      [/b][b]赋值运算[/b][b][/b] 交换变量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 [b]10.  [/b][b]条件运算[/b][b][/b]
== 等于 != 不等于
eql? 比较两个对象的值、类型是否相等 equal? 比较两个对象在内存中地址是否相同
小于 大于
<= 小于等于 >= 大于等于
=~ 匹配正则表达式 !~ 断言不匹配正则表达式
=== 右边的对象在左边区间内 puts(0..9)===3.14  #true puts('a'..'f')==='c'    # true <=> 比较两个对象大小,大于1,等于0,小于-1.
Ruby里,nil和false为假,其它都为真。   [b]11.  [/b][b]判断语句[/b][b][/b]
[list=1] [*]单行if语句[/*][/list] if    then    end
(    ) if
[list=1] [*]多行if语句[/*][/list] if    elsif    else    end
[list=1] [*]unless条件语句[/*][/list]   unless  
if not  
[list=1] [*]case分支条件语句[/*][/list]   case when when else end
[b][/b]  [b]12.  [/b][b]循环语句[/b][b][/b]
单行while (语句1;语句2;语句…)while条件
多行while while  条件  语句,语句  end
until直到 until 跳出循环条件  语句 until 条件=while not (条件)
for…in循环 for  变量  in  对象    语句1; 语句2 ;  语句… end
  break,next&redo&retry 在循环体内,如果遇到:
break 跳出当层循环;
next 忽略本次循环的剩余部分,开始下一次的循环;
redo 重新开始循环,还是从这一次开始;
retry 重头开始这个循环体。
  times , upto , downto , each ,step
语句 运行结果
3.times { print  "Hi!" } #Hi!Hi!Hi! 
1.upto(9) {|i| print  i  if  i<7 } #123456   
9.downto(1){|i| print  i  if  i<7 } #654321
(1..9).each {|i| print  i  if  i<7} #123456   
0.step(11,3) {|i| print  i  } #0369     
 
[b]C:Documents and SettingsAdministrator>irb[/b] [b]irb(main):001:0> 1.upto(9){|i| print i if i<7}[/b] [b]123456=> 1[/b] [b]irb(main):002:0> 9.downto(1){|i|print i if i<7}[/b] [b]654321=> 9[/b] [b]irb(main):003:0> (1..9).each {|i| print i if i<7}[/b] [b]123456=> 1..9[/b] [b]irb(main):004:0> 0.step(11,3) {|i| print i}[/b] [b]0369=> 0[/b]
  13.  异常 Java try…catch…finally…throw Ruby begin/end…rescue…ensure…raise retry可以用在rescue中。可以只用rescue或ensure,两者都使用时,rescue必须在ensure前。 14.  线程 
当前1/4页 [b]1[/b][url=http://www.1sucai.cn/article/16497_2.htm]2[/url][url=http://www.1sucai.cn/article/16497_3.htm]3[/url][url=http://www.1sucai.cn/article/16497_4.htm]4[/url][url=http://www.1sucai.cn/article/16497_2.htm]下一页[/url][url=http://www.1sucai.cn/article/16497_all.htm]阅读全文[/url]
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部