命令

  • 常量大写
  • 类名和模块名首字母大写,驼峰法,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编程实践的更多相关文章

  1. 高性能javascript学习笔记系列(5) -快速响应的用户界面和编程实践

    参考高性能javascript 理解浏览器UI线程  用于执行javascript和更新用户界面的进程通常被称为浏览器UI线程  UI线程的工作机制可以理解为一个简单的队列系统,队列中的任务按顺序执行 ...

  2. 高性能JavaScript 编程实践

    前言 最近在翻<高性能JavaScript>这本书(2010年版 丁琛译),感觉可能是因为浏览器引擎的改进或是其他原因,书中有些原本能提高性能的代码在最新的浏览器中已经失效.但是有些章节的 ...

  3. Method Swizzling和AOP(面向切面编程)实践

    Method Swizzling和AOP(面向切面编程)实践 参考: http://www.cocoachina.com/ios/20150120/10959.html 上一篇介绍了 Objectiv ...

  4. 编程实践中C语言的一些常见细节

    对于C语言,不同的编译器采用了不同的实现,并且在不同平台上表现也不同.脱离具体环境探讨C的细节行为是没有意义的,以下是我所使用的环境,大部分内容都经过测试,且所有测试结果基于这个环境获得,为简化起见, ...

  5. 第二章 C语言编程实践

    上章回顾 宏定义特点和注意细节 条件编译特点和主要用处 文件包含的路径查询规则 C语言扩展宏定义的用法 第二章 第二章 C语言编程实践 C语言编程实践 预习检查 异或的运算符是什么 宏定义最主要的特点 ...

  6. 试读《JavaScript语言精髓与编程实践》

    有幸看到iteye的活动,有幸读到<JavaScript语言精髓与编程实践_第2版>的试读版本,希望更有幸能完整的读到此书. 说来读这本书的冲动,来得很诡异,写一篇读后感,赢一本书,其实奖 ...

  7. Python GUI编程实践

    看完了<python编程实践>对Python的基本语法有了一定的了解,加上认识到python在图形用户界面和数据库支持方面快捷,遂决定动手实践一番. 因为是刚接触Python,对于基本的数 ...

  8. [Java 并发] Java并发编程实践 思维导图 - 第一章 简单介绍

    阅读<Java并发编程实践>一书后整理的思维导图.

  9. 《编写可维护的JavaScript》之编程实践

    最近读完<编写可维护的JavaScript>,让我受益匪浅,它指明了编码过程中,需要注意的方方面面,在团队协作中特别有用,可维护性是一个非常大的话题,这本书是一个不错的起点. 本书虽短,却 ...

随机推荐

  1. 九度OJ 1088:剩下的树 (线段树)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:5791 解决:2649 题目描述: 有一个长度为整数L(1<=L<=10000)的马路,可以想象成数轴上长度为L的一个线段,起点 ...

  2. The server must be started under an unprivileged user ID to prevent

    mysql8 PostgreSQL [root@test local]# postgres -D /usr/local/pgsql/data"root" execution of ...

  3. machine learning for hacker记录(4) 智能邮箱(排序学习&推荐系统)

    本章是上一章邮件过滤技术的延伸,上一章的内容主要是过滤掉垃圾邮件,而这里要讲的是对那些正常的邮件是否可以加入个性化元素,由于每个用户关心的主题并非一样(有人喜欢技术类型的邮件或者购物促销方便的内容邮件 ...

  4. Machine Learning in Action(1) K-近邻

    机器学习分两大类,有监督学习(supervised learning)和无监督学习(unsupervised learning).有监督学习又可分两类:分类(classification.)和回归(r ...

  5. listview 使用图片三级缓存图片闪动

  6. "makefile:5: *** missing separator. Stop."【转】

    本文转载自:http://blog.csdn.net/fireroll/article/details/8607903 写makefile时出现这个错误提示 是表示makefile中的命令前没有使用T ...

  7. LightOJ1336 Sigma Function —— 质因子分解、约数和为偶数

    题目链接:https://vjudge.net/problem/LightOJ-1336 1336 - Sigma Function    PDF (English) Statistics Forum ...

  8. APP测试走过的那些坑

    我现在的工作有一大部分也是app测试,虽然自己是app开发出身,但是在测试上还是跌入了很多大坑,毕竟二者还是有很大不同,所处的角度也是不一样的.而开发转测试中,我认为较难的也是一个角度的转换,以一个开 ...

  9. springmvc junit测试

    import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.ann ...

  10. cogs1070玻璃球游戏

    1070. [焦作一中2012] 玻璃球游戏 ★   输入文件:marbles.in   输出文件:marbles.out   简单对比时间限制:1 s   内存限制:128 MB [问题描述] 小x ...