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>,让我受益匪浅,它指明了编码过程中,需要注意的方方面面,在团队协作中特别有用,可维护性是一个非常大的话题,这本书是一个不错的起点. 本书虽短,却 ...
随机推荐
- wince c# 创建桌面快捷方式 .
static void Create() { string PathGPRS = System.IO.Path.GetDirectoryName(System.Reflection.Assembly. ...
- EasyDarwin Streaming Server对Task的调用方法
我们在EasyDarwin流媒体服务器的二次开发过程中,经常会需要定义自己的Task类,例如在EasyDarwin中,RTSPSessioin.HTTPSession.RTCPTask等,都是Task ...
- EasyDarwin EasyClient开源流媒体播放器,支持多窗口显示
EasyDarwin开源团队开源的EasyClient客户端将支持流媒体采集.编码.推送.播放.抓图.录像.Onvif 等全套功能(大家持续关注我们Github的commit),其中播放功能是开源流媒 ...
- linux CentOS7.2配置LNMP
转自http://www.centoscn.com/CentosServer/www/2014/0904/3673.html 准备篇: CentOS 7.0系统安装配置图解教程 http://www. ...
- window上安装rabbitMQ
win7下安装RabbitMQ http://my.oschina.net/ydsakyclguozi/blog/528835?fromerr=q7m1OxxF 前辈总结的特别详细.
- Long转换为date
public static void main(String[] args) { Long time = System.currentTimeMillis(); System.out.println( ...
- Backbone vs AngularJS
首先 Backbone 没有 AngularJS 那么容易上手. 而且作者并没有想让Backbone草根化的意思. Backbone 比喻成战斗机. 看上去更像是真正的MVC框架, model-vie ...
- 浅谈如何删除JSP编译后的空行
当你在客户端用view source看JSP生成的代码时,会发现有很多空行,他们是由< %...% >后的回车换行而生成的,也就是说每一行由< %...% >包含的JSP代码到 ...
- Gradle build-info.xml not found for module app.Please make sure that you are using gradle plugin '2.0.0-alpha4' or higher.
解决方法:去掉“Enable Instant run to host swap code/resource changes on deploy(default enabled)”的勾选项 Settin ...
- tensorflow实现图像的翻转
from:https://blog.csdn.net/uestc_c2_403/article/details/72703097 tensorflow内部含有实现图像翻转的函数为 tf.image.f ...