Ruby编程实践
命令
- 常量大写
- 类名和模块名首字母大写,驼峰法,MyClass,Person
- 方法名小写,ruby中末尾添加符号特殊含义:destroyMethod!表示这个方法具有破坏性;isPrime?表示返回bool类型
- 变量、参数小写
空格和括号,保证可读性
- ,、;紧跟,后面加空格
- 操作副前后加空格
- 一元操作符不加空格
- [] . :: 前后不加空格
return
ruby最后一行如果是表达式,则自动返回;如果不是,则不返回
注释
- #单行注释
- =begin ... =end 多行注释
继承
attr_writer:val attr_reader:val attr_accessor:val 实现变量的getter setter
class Person
def initialize(name,age=18)
@name = name
@age = age
@motherland = "China"
end # initialize method
def talk
puts "my name is "+@name+" ,age is "+@age.to_s
if @motherland == "China"
puts "I am a Chinese"
else
puts "I am a foreigner"
end
end # talk method
attr_writer:motherland
# attr_reader:motherland
end
p1 = Person.new("zhaosi",40)
p1.talk
p2 = Person.new("songxiaobao")
p2.motherland = "ABC"
p2.talk
# p2.motherland #open attr_reader:motherland
class Student<Person
def talk
puts "I am a student. my name is "+@name+" ,age is "+@age.to_s
end
end
p3 = Student.new("xiaoshenyang",38)
p3.talk
p4 = Student.new("Ben")
p4.talk
Ruby动态性
在运行中添加、修改、移除方法
class Person
def talk
puts "I am worker"
end
end
p1 = Person.new
p1.talk
class Person
def talk
puts "I am #@stu"
end
attr_accessor:stu
end
p2 = Person.new
p2.stu = "Student"
p2.talk
class Person
undef:talk
end
p3 = Person.new
p3.talk
Ruby编程实践的更多相关文章
- 高性能javascript学习笔记系列(5) -快速响应的用户界面和编程实践
参考高性能javascript 理解浏览器UI线程 用于执行javascript和更新用户界面的进程通常被称为浏览器UI线程 UI线程的工作机制可以理解为一个简单的队列系统,队列中的任务按顺序执行 ...
- 高性能JavaScript 编程实践
前言 最近在翻<高性能JavaScript>这本书(2010年版 丁琛译),感觉可能是因为浏览器引擎的改进或是其他原因,书中有些原本能提高性能的代码在最新的浏览器中已经失效.但是有些章节的 ...
- Method Swizzling和AOP(面向切面编程)实践
Method Swizzling和AOP(面向切面编程)实践 参考: http://www.cocoachina.com/ios/20150120/10959.html 上一篇介绍了 Objectiv ...
- 编程实践中C语言的一些常见细节
对于C语言,不同的编译器采用了不同的实现,并且在不同平台上表现也不同.脱离具体环境探讨C的细节行为是没有意义的,以下是我所使用的环境,大部分内容都经过测试,且所有测试结果基于这个环境获得,为简化起见, ...
- 第二章 C语言编程实践
上章回顾 宏定义特点和注意细节 条件编译特点和主要用处 文件包含的路径查询规则 C语言扩展宏定义的用法 第二章 第二章 C语言编程实践 C语言编程实践 预习检查 异或的运算符是什么 宏定义最主要的特点 ...
- 试读《JavaScript语言精髓与编程实践》
有幸看到iteye的活动,有幸读到<JavaScript语言精髓与编程实践_第2版>的试读版本,希望更有幸能完整的读到此书. 说来读这本书的冲动,来得很诡异,写一篇读后感,赢一本书,其实奖 ...
- Python GUI编程实践
看完了<python编程实践>对Python的基本语法有了一定的了解,加上认识到python在图形用户界面和数据库支持方面快捷,遂决定动手实践一番. 因为是刚接触Python,对于基本的数 ...
- [Java 并发] Java并发编程实践 思维导图 - 第一章 简单介绍
阅读<Java并发编程实践>一书后整理的思维导图.
- 《编写可维护的JavaScript》之编程实践
最近读完<编写可维护的JavaScript>,让我受益匪浅,它指明了编码过程中,需要注意的方方面面,在团队协作中特别有用,可维护性是一个非常大的话题,这本书是一个不错的起点. 本书虽短,却 ...
随机推荐
- HTML5学习笔记简明版(9):变化的元素和属性
改变的元素(Element) 下面元素在HTML5里的使用方法稍作改动以便能在web里更好的使用或者起到更大作用: 没有href属性的a元素将显示成一个占位符,并且a元素内部如今支持flow cont ...
- ZooKeeper学习笔记(一)
引导 刚开始学习ZooKeepter,看的书是[O'Reilly Media] ZooKeeper.下面的内容基本上是该书的翻译,很多语句也存在问题,大致读还是没问题的,自己在学习中记录. 第一章 Z ...
- centos7设置tomcat7为系统服务的方法
1,准备工作: JKD:jdk-7u72-Linux-x64.gz Tomcat:apache-tomcat-7.0.70.tar.gz OS:CentOS linux release 7.2.151 ...
- LeetCode算法题目解答汇总(转自四火的唠叨)
LeetCode算法题目解答汇总 本文转自<四火的唠叨> 只要不是特别忙或者特别不方便,最近一直保持着每天做几道算法题的规律,到后来随着难度的增加,每天做的题目越来越少.我的初衷就是练习, ...
- Hadoop实战-MapReduce之倒排索引(八)
倒排索引 (就是key和Value对调的显示结果) 一.需求:下面是用户播放音乐记录,统计歌曲被哪些用户播放过 tom LittleApple jack YesterdayO ...
- 编写灵活、稳定、高质量的 HTML 和 CSS 代码的规范。
引用地址http://codeguide.bootcss.com/#html-ie-compatibility-mode <!DOCTYPE html> <html lang=& ...
- 使用dbms_stats.gather_table_stats调整表的统计信息
创建实验表,插入10万行数据 SQL> create table test (id number,name varchar2(10)); Table created. SQL> decla ...
- 在dw中 <!----> 和 /**/ 的区别?
<!-- -->是HTML的注释标签,使用<和>是符合HTML标签语法规则的./* */是CSS和JS的注释标签.两种注释有各自的使用环境,并且不能相互替代.
- SpringMVC ajax技术无刷新文件上传下载删除示例
参考 Spring MVC中上传文件实例 SpringMVC结合ajaxfileupload.js实现ajax无刷新文件上传 Spring MVC 文件上传下载 (FileOperateUtil.ja ...
- 小trick之mklink
因为要看很多论文就下载安装了zotero,又因为文献库的文件夹在安装目录太深,找起来太麻烦,再加上是软件本身的安装目录,因此把论文都下载在默认文件中总会天然地产生不安全感,万一误删软件怎么办.所以在文 ...