Ruby语法学习笔记(1)
2010-06-13 20:05 chenkai 阅读(4067) 评论(2) 编辑 收藏 举报最近一直拿了一部分时间集中看Ruby方面的资料.当时因为出了Rails 框架 相关Ruby on Rails上应用也慢慢增多. 以前总是想拿出点时间来学习一下.不料前前后后拖了快一年. 鉴于网络上关于Ruby资源大多为英文. 部分中文Ruby语法上教程完整的更是很少.Ruby只是一门下一代动态开发语言.其实我更关注的是Ruby on rails上应用. 所以学习Ruby主要是为了Ruby on Rails开发应用打下基础. 鉴于本人为初学者. 大部分资源来源于网络和个人总结. 所以难免有些地方有些疏漏和理解上偏差. 还请各位指出 我会及时更正. 上来拍砖同志 也请收下留情.
注: 我是边实践变发现问题 边解决. 有可能你看到文章显得比较乱. 没有完整思路头绪.还请谅解.
A:Ruby Methor—ruby 中方法
输入结果:"Good night! chenkai"
(1)Ruby中只要每条语句单独写成一行. 就不必再语句最后加上分号. 也就说分号(;) 是或缺的. 这不同于C#和Java.
(2)"#***" #在ruby标注的单行注释. 多行注释如下:
方法定义关键字Def [同类,模块定义后面会提到]. ruby不用C# 和Java常用{}大括号来划分符合语句和定义(方法和类)主体边界. 只需在主体结束用关键字End结束即可.
(3)方法中定义变量:@nickname 是方法内局部变量.
Ruby的标识名用来指向常量,变量,方法,类和模块. 和C# java等都是区分大小写的.Ruby使用一个约定来帮助它区别一个名字的用法:名字前面的第一个字符表明这个名字的用法。局部变量、方法参数和方法名称应该用一个小写字母开头或者用一个下划线开头;全局变量用美元符作为前缀 $;而实例变量用 @ 开头;类变量用 @@ 开头;类名、模块名和常量应该用大写字母开头. 用法如下:
(4)puts 用法:
puts 是ruby内置函数. 它完整定义是 Puts() 把输入参数输出到控制台.并在后面添加一个新行 即换行.所以 如上 puts firstcustomer.getName() 完整写法为:
puts(firstcustomer.getName()). 二者写法输出结果是一样的. 所以这个语句其实调用两个方法一个Puts()内置输入函数和firstcustomer.getName()方法.
(5)字符串文本使用:
Ruby定义的字符串定义同C#类似. 位于单引号或双引号之间的字符序列. 但是ruby 单引号与双引号存在区别:
A:单引号—ruby中几乎不对单引号字符串做任何处理. 除了很少几个特殊情况之外[后面有详解].
B:双引号—ruby则会做更多处理.首先查找字符串中的替代串[以反斜杠为开头的字符序列例如: \n-换行] 替代串-在ruby中主要将其替换成对应的二进制值. 当然最常见替换串就是\n 替换成换行符.
第二项处理—表达式插补[Express interpolation] 字符串中#{express} 序列会被替换为express表达式的值. 用法:
其中定义方法中把传入的值 通过#{name}解析的. 然后拼接字符串方式返回值. capitalize()字符串处理方法 把参数值的首字母编程大写. 也可以把一个整数按字符串方式输出,.
输出结果:
2
6转换字符串
第二行中()括号作用是具有优先级. to_s 则转换成字符串. []至于ruby中字符使用以及逻辑判断语句会在后面章节详细列出]
B:Ruby Classes -Ruby中类
相对于ruby Method方法定义. Ruby类定义要注意地方比较多. Ruby是面向对象编程的OOP. 定义一个简单Customer类: