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

本文转自博客园xingoo的博客,原文链接:Ruby编程实践,如需转载请自行联系原博主。

时间: 2024-10-24 06:16:06

Ruby编程实践的相关文章

AJAX编程实践之与服务器通信

ajax|编程|服务器 游客,您好!转网通站 | 转电信站 积木首页 | 500多种网页特效整理 | 实用查询函数手册 | 积木网BT下载联盟 | 经典笑话 | 广播电台 | 高清晰经典图片素材   程序开发  网页设计  搜索引擎  特效代码  操作系统  防范病毒  黑客技术  图形图象  电脑硬件  网络技术  服 务 器  数 据 库  网文精粹       您的位置:积木首页 >> 程序开发频道 >> Ajax技术 >> 正文:  标题:AJAX编程实践之与服

推荐阅读Java并发性领域编程最值得一读的力作《JAVA并发编程实践》

我的第一次之给<JAVA并发编程实践>写推荐序英文书名:Java Concurrency in Practice 中文书名:JAVA并发编程实践 这是一本入围17届Jolt大奖的书,虽然最终他没有获奖,但是这只是与政治有关的.:) 推荐序原文如下: http://book.csdn.net/bookfiles/398/10039814644.shtml 在汗牛充栋的 Java 图书堆中,关于并发性的书籍却相当稀少,然而这本书的出现,将极大地弥补了这一方面的空缺.即使并发性编程还没进入到您的 J

Java核心编程实践--视频

Java核心编程实践--视频 下载地址:http://v.51work6.com/courseInfoRedirect.do?action=courseInfo&courseId=240577    图形用户界面的开发是本教程的重点,图书管理系统是使用图形界面开发的.集合框架是非常重要的内容,通过本教程的学习使学员掌握两大接口Collection和Map,还有List等,以及它们的实现类ArrayList.Vector和HashMap等.使用Collections类实现对集合的排序.最大值.最小

Storm实时计算:流操作入门编程实践

Storm是一个分布式是实时计算系统,它设计了一种对流和计算的抽象,概念比较简单,实际编程开发起来相对容易.下面,简单介绍编程实践过程中需要理解的Storm中的几个概念: Topology Storm中Topology的概念类似于Hadoop中的MapReduce Job,是一个用来编排.容纳一组计算逻辑组件(Spout.Bolt)的对象(Hadoop MapReduce中一个Job包含一组Map Task.Reduce Task),这一组计算组件可以按照DAG图的方式编排起来(通过选择Stre

Akka入门编程实践

Akka是使用Scala语言开发一个编程库,基于事件驱动的架构实现异步处理,它能够简化编写分布式应用程序.Akka中最核心的概念是Actor模型,它为编写分布式/并行计算应用程序提供了高层次抽象,在实际编程实践中,开发人员可以从对复杂网络通信细节的处理.多线程应用场景下对锁的管理中解脱出来. Akka能够给应用程序带来的几个重要的特性是: 容错性 可伸缩性 异步性 事件驱动架构(EDA) 远程透明性 Actor是Akka中最核心的组件,以至于我们在编写基于Akka的应用程序时,大部分时间都会和A

《Java线程与并发编程实践》—— 导读

前言 Java线程与并发编程实践 线程和并发工具并非尤物,但是它们是正式应用的重要部分.本书会向你介绍Java 8 Update 60中线程特性以及并发工具的大部分内容. 第1章介绍了类Thread和接口Runnable.你会学习如何创建Thread以及Runnable对象,获取和设置线程状态.启动线程.中断线程,将一条线程插入另外一条线程以及触发线程睡眠. 第2章关注同步.学习后你会解决一些问题,如没有同步就无法解决的竞态条件.你也能学到如何创建同步方法.块,以及如何使用忽略互斥访问的轻量级同

 《XPP极速编程实践》

<XPP极速编程实践>主要介绍了XPP的模式,在此模式下PD,Dev,QA,DevOps各角色的职责与定位,以及如何持续快速交付高质量产品. XPP的模式--面向交付开发与传统的面向测试开发区别: 极限编程的模式,面向交付的开发:有测试的工作,但没有真正的测试环节存在.开发写完代码,直接上线.没有经过严格的测试,会不会出现质量倒退呢,其实是赋予测试一些定的含义. 开发在编码阶段加入:代码审查.单元测试.集成测试:在交付阶段:加入一个新的角色DevOps,从复杂的TC编写中释放出来,而是做用例审

基于java.nio.channels的编程实践-II

介绍 为了提供并发处理效率,把用户的请求连接随机分配到线程池的线程进行处理,hbase也是采用同样的方式处理用户请求的 客户端代码可以参考:基于java.nio.channels的编程实践-I 代码 import java.io.IOException; import java.net.InetSocketAddress; import java.nio.ByteBuffer; import java.nio.channels.SelectionKey; import java.nio.chan

《Java线程与并发编程实践》—— 第2章 同步 2.1 线程中的问题

第2章 同步 Java线程与并发编程实践 线程交互通常是通过共享变量完成的,当线程之间没有交互时,开发多线程的应用程序会变得简单许多.一旦发生了交互,很多诱发线程不安全(在多线程环境下不正确)的因素就会暴露出来.在这一章中,你将会认识到这些问题,同时也会学习如何正确地使用Java面向同步的特性来克服它们. 2.1 线程中的问题 Java对线程的支持促进了响应式.可扩展应用程序的发展.不过,这样的支持是以增加复杂性作为代价的.如果不多加小心,你的代码就会到处充斥着极难以察觉的bug,而这些bug多