当前位置: 首页 >> 程序设计 >> Programming Ruby 2nd 学习笔记
 

Programming Ruby 2nd 学习笔记

作者:      来源:zz     发表时间:2007-09-21     浏览次数:      字号:    

Ruby设置
 
14Ruby的世界
 
命令行参数

标准命令行格式:ruby [ options ] [-- ] [ programfile ] [ arguments ]

 

若没有文件名,或者文件名为”-”(中划线)ruby从命令行读取源文件

 

例如:% ruby -w – “Hello World”

 
程序退出

Kernel#exit用来退出程序,返回一个操作系统状态值,不像别的语言的exit立刻退出程序,Kernel#exit在退出之前抛出SystemExit异常,你可以捕获这个异常,进行一些清理工作

 
环境变量
你可以通过预定义的变量ENV来访问环境变量,ENV一个hash类型的变量
环境变量可以修改,但是这种修改只对当前进程有效
Ruby使用的环境变量有下面几种:
变量名称
描述

DLN_LIBRARY_PATH

 
 
动态加载模块的路径

HOME

 
 
当前用户的主路径,在扩展路径时,用来替换路径中的”~”符号

LOGDIR

 
 
假如没有设置$HOME,指向用户主路径。只有Dir.chdir使用这个变量

OPENSSL_CONF

 
 

OpenSSL的的配置文件路径

 
 

RUBYLIB

 
 
Ruby程序的附加搜索路径($SAFE必须为0)

RUBYLIB_PREFIX

 
 

仅仅适用于windows平台,通过加上前缀,来分散RUBYLIB的搜索路径

 
 

RUBYOPT

 
 
Ruby的附加命令行选项。在真正命令行选项被解析后开始检测($SAFE必须为0)

RUBYPATH

 
 
-S选项, ruby程序的搜索路径(默认市PATH)

RUBYSHELL

 
 

windouws下,这个SHELL用来打开一个进程。若没有设置,将检测SHELLCOMSPEC

 
 

RUBY_TCL_DLL

 
 
用来覆盖TCL共享库的默认名

RUBY_TK_DLL

 
 
用来覆盖TK共享库的默认名,这与RUBY_TCL_DLL必须任意设置一个
Ruby寻找模块的位置
察看寻找模块循序的命令:
% ruby –e 'puts $:'
windows上运行上面的命令,输出如下:
d:/ruby/lib/ruby/site_ruby/1.8
d:/ruby/lib/ruby/site_ruby/1.8/i386-msvcrt
d:/ruby/lib/ruby/site_ruby
d:/ruby/lib/ruby/1.8
d:/ruby/lib/ruby/1.8/i386-mswin32
site_ruby包含模块与扩展。
$:是放置加载文件的数组。
编译环境
当为特定平台编译ruby程序时,就需要使用rbconfig.rb文件中的Config模块
交互设的ruby shell
 
命令行
标准命令行格式:irb [ irb-options ] [ ruby_script ] [ program arguments ]
可选项()
irb的关键用处是验证代码,可以参见英文书中的精彩测试代码
l         tab补全(Tab Completion)

这是在irb命令下的代码补全方式,在你输入几个字母后,连续按两次tab键,irb会输出所有已这几个字母开头的函数名或当前变量名。irb会尽快帮你补全单词的,有时在你按了一次tab时,它就会寻找是否有匹配的,若有好多个单词,它会根据你每次按tab时,帮你分段补全

 
l         子会话(Subsession)
Irb支持支持多个并发的会话
l         子会话与绑定(Subsessions and Bindings)

Todo

 
配置
Irb是高度可配置的,可以用命令行选项,或者配置文件
l         初始化文件
l         扩展irb
l         交互式配置
l         Irb交互式配置选项
命令
irb提示符下,你可以打一些ruby表达式来查看结果,详细命令如下

exit, quit, irb_exit, irb_quit

 
conf, context, irb_context
cb, irb_change_binding < obj >
irb < obj >
jobs, irb_jobs
fg n, irb_fg n
kill n, irb_kill n
配置提示符

 

 
约束
由于irb的工作方式,它与标准ruby解释器有些不兼容。问题主要是本地变量的赋值
这是由动态语言的特性造成的,比如eval ”var=1”,irb中只能等所有行都读入才执行得出var的值,具体可以参看英文版。
rtagsxmp
这主要是一些小工具,没多少用处
文档化ruby
 
ruby代码添加RDoc
C语言扩展添加RDoc
运行RDoc
显示程序用法
使用RubyGems来管理包
 
安装RubyGems
安装应用程序Gems
安装和使用Gem
创建你自己的Gems
Rubyweb
 
CGI脚本
Cookies
提升性能
Web服务器的选择
SOAPWeb Service
更多信息
运行TK
 
简单TK程序
窗口
绑定事件
画布
滚动条
Perl/TK文档翻译
Ruby与微软windows
 
获得windows平台上的ruby
Windows下运行Ruby
Win32API
Windows自动化
扩展Ruby
 
你的第一个程序
C语言中Ruby对象
Jukebox扩展
内存分配
Ruby类型系统
创建一个扩展
嵌入一个Ruby解释器
嫁接Ruby到其他语言
Ruby C语言API
Ruby详细
 
Ruby语言
这章是从底向上来讲解ruby语言。大多数内容只是语言的语法和语义,没有讲解内置类与模块。然而,有时ruby把一些其他语言级别的特性放在标准库中实现。
源代码布局
Ruby是面向行的语言,一般来讲一行只可以有一条表达式,若想写多个表达式,可以使用”;”来隔开;对于一条表达式分成多行的情况,若在换行的行尾没有任何操作符,则可以在换行的行尾添加反斜杆”\”,反之,什么都不加。
普通分隔符输入
类型
说明
%q
单引号字符串
%Q,%
双引号字符串
%w,%W
字符串数组
%r
正则表达式模式
%x
Shell命令

 

 
基本类型
Ruby的基本类型有:数字,字符串,数组,hash,范围,符号,正则表达式
命名
变量与常量
预定义变量
表达式
布尔表达式
Ifunless表达式
Case表达式
Loop结构
方法定义
调用一个方法
别名
类定义
模块定义
访问控制
代码块,闭包,Proc对象
异常
捕获与抛出
Duck类型
 
类不是类型
duck一样编码
标准协议与强迫
言行一致
类和对象
 
类和对象是怎么交互的
类与模块的定义
顶级执行环境
继承与可见性
冻结对象
在安全模式下锁定Ruby
 
安全级别
感染的对象
反射,对象空间和分布式Ruby
 
寻找对象
寻找类
动态调用方法
系统钩子
追踪你程序的执行
序列化与分布式对象
编译时?运行时?随时?
Ruby参考手册
 
附录
 
附录一 Socket
 
附录二 MKMF参考
 
附录三支持
 
Web站点
下载站点
新闻组
邮件列表
附录四参考书目

[1] [2]

责任编辑 webmaster

 
发表评论  打印本文  推荐本文  加入收藏  返回顶部  关闭窗口
 
 
 
 
评论更多>>
 
 
 
发表
 
姓名: QQ:
性别: MSN:
E-mail: 主页:
评分: 1 2 3 4 5
评论内容:
验证码:
  
  • 请遵守《互联网电子公告服务管理规定》及中华人民共和国其他各项有关法律法规。
  • 严禁发表危害国家安全、损害国家利益、破坏民族团结、破坏国家宗教政策、破坏社会稳定、侮辱、诽谤、教唆、淫秽等内容的评论 。
  • 用户需对自己在使用本站服务过程中的行为承担法律责任(直接或间接导致的)。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。
  •