`
deepthink
  • 浏览: 56826 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

Ruby 学习笔记 第一~~~~

阅读更多

 

Roby 学习笔记

1>: 关于类

class MyFir # 继承的方式是 MyFir < MyParentFir

  # To change this template use File | Settings | File Templates.

 

  def initialize(name,co = 'xxxxx') # 参数可设置默认值,当有默认值的时候可以不传入数

 

据,如果传入了,则覆盖默认

    @name = name 

    @co = co 

  end

 

  @co #实例变量使用@开头,$是静态常量开头字母 @@是类变量的标识符

  @name

 

  def showMe

    p "name=#{@name} \r\n, co = #{@co}" #注意这里的转义符,在输出的时候是不会被转义

 

的,而是当做字符串原样输出,#后的大括号是可以省略的...

    #print "name=#{@name} , co = #{@co}"

    #print "fdsafdsa" , @co," name = ",@name # 链接字符串使用 + 或者,打印的时候使用

 

逗号分隔

  end

 

end

 

f = MyFir.new("gggggggggggg")

f.showMe()

 

p,print,puts的区别

共同点:都是用来屏幕输出的。

不同点:

puts 输出内容后,会自动换行(如果内容参数为空,则仅输出一个换行符号);另外如果内容参

 

数中有转义符,输出时将先处理转义再输出

p 基本与puts相同,但不会处理参数中的转义符号

print 基本与puts相同,但输出内容后,不会自动在结尾加上换行符

 

2>:函数调用

X.new() 可以是 X.new,这样就可以省略括号

如果有参数,则

X.new('arg1','arg2') 可以是 X.new 'arg1','arg2' 

 

3>:

Ruby具备和js相似的动态性:

比如:

class X{....}

 

x = X.new

 

x.showName # 暂定是xxxxx

 

class X{ ... do some other thing ..}

 

x.showName # 就会使用后面的定义实现,而不需要重新X.new

这也就是动态(脚本)语言的一个比较大的特征,参照js

 

4>:

编码建议,命名规则和Java差不多... 除了$,@,@@

 

5>:返回值 return关键字

 def giveMe

    return 'gs','yyy'

  end

 

print f.giveMe

这里有一个迷惑,就是同时返回2个数据

这个其实就是一个数组,如果返回的是一个值,则是一个值,否则就是数组

输出:["gs", "yyy"]

 

6>:下标

print f.giveMe[1] 这个使用了下标

 

7>:

关于注释:你见过没有路标的高速公路么?

 

8>:

重载与重写 overload && override

和Java基本一致,需要注意的是,当存在默认参数的时候是不是比较特殊,不过想了下,不会,

 

因为

def xx(name,age=26)

其实相当于两种方式:

def xx(name) & def xx(name,age)

也即是说,如果存在def xx(name) 是会和def xx(name,age=26)冲突的...

在这一点上和Java的xxx(long ... args) 是比较相像的...

 

9>:

增强特性:

class Person

def talk

print "I'am a person"

end

end

 

class Stu < Person

def talk

super

print ",and I'am a student too..."

end

end

 

stu = Stu.new

stu.talk 

output:I'am a person,and I'am a student too....

靠,这个功能太NB了,推荐不要使用!!!!!!!,

可能(刚学,不太确定)会有风险,如果重构,是不是会死人?!

 

10>:

关于初始值:

Java中的,int,long,float 都是存在默认值的,比如0..... 

但是注意,Ruby中都是对象,所以不存在0为初始值.... 都是nil,OMG,这个好!

 

11>:

关于静态(不是常量!不是常量):

class StudengClass

def StudentClass.student_count #静态啊,静态啊....

puts "static function content"

end

end

 

StudentClass.student_count # 访问以下静态方法....

 

12>:

关于单利方法:

x1 = X.new

x2 = X.new

 

def x2.showMyName

print 'Geng Shuang'

end

 

showMyName 只属于x2,x1不存在该方法

呵呵呵呵呵呵呵呵呵呵呵呵呵呵,单例了吧....

 

13>:

访问控制

public ,protected ,provite

跟Java差不多,不过Ruby中默认都是public的,呵呵~~~~~

 

14>:

mark : 第七章,p80

 

分享到:
评论

相关推荐

    个人ruby学习笔记

    这是多行注释的第一行。 这是多行注释的第二行。 =end ``` #### 分隔符 Ruby使用多种分隔符来增强代码的可读性和功能: - `;`用于分隔一行中的多个语句,但通常情况下可以省略。 - `()`用于提升运算优先级或...

    ruby学习笔记

    根据提供的“ruby学习笔记”内容,我们可以从中提炼出多个重要的Ruby编程知识点,这些知识点对于初学者来说非常有用。下面将对这些知识点进行详细的解释与扩展。 ### 一、Ruby中的全局变量 Ruby提供了多个特殊变量...

    Ruby元编程基础学习笔记整理

    ### Ruby元编程基础学习笔记整理 #### 一、语言构建(Language Constructs) 在Ruby中,诸如变量、类和方法等元素统称为语言构建(Language Constructs)。这些构建块是构成Ruby程序的基础。 ##### 示例代码分析 ```...

    ruby笔记2ruby笔记2ruby笔记2

    "ruby笔记2ruby笔记2ruby笔记2"可能是指一系列关于Ruby学习的笔记,这些笔记可能涵盖了Ruby的基础概念、核心特性以及进阶话题。在Ruby的学习过程中,理解和掌握以下几个关键知识点至关重要: 1. **面向对象编程...

    Ruby学习资料(含参考手册和Programming Ruby)-中文.rar

    其次,"Ruby初级教程(Ruby用户指南).chm"是针对初学者的教程,它详细解释了如何开始使用Ruby,包括安装Ruby环境、编写第一个程序、变量、控制结构等基础知识。对于刚接触Ruby的人来说,这是个很好的起点。 "Ruby...

    Extjs 5 学习笔记

    ### Extjs 5 学习笔记之 SenchaCmd 深入解析 #### 一、SenchaCmd 的简介 SenchaCmd 是一个跨平台的命令行工具,它为基于 ExtJS 和 Sencha Touch 应用程序的开发周期提供了全面的支持。从创建应用程序的基础结构到...

    Python 学习笔记 第三版1

    《Python 学习笔记 第三版1》是一本面向有一定Python编程基础的读者的书籍,旨在深入解析Python 3.6的语言特性。作者虽然已经具备一定的写作经验,但仍然谦虚地表示无法确保内容完全正确,同时满足所有人的需求。他...

    学习Ruby_11961032.pdf

    ruby自学笔记,里面包含了笔者学习心得 元素的过滤 使用场景:数组中元素都是有各自的索引位置,有时候我们想人为的控制某个元素的索引编号,或者不想使用某个索引编号,可以在数组中加入nill来占位 数组的....

    ruby语言入门教程-自学笔记

    - **丰富的标准库**:Ruby拥有大量的内置库和第三方库,极大地提高了开发效率。 - **强大的元编程能力**:Ruby支持高级的元编程特性,使得开发者能够轻松地扩展和定制语言本身的功能。 - **面向对象**:Ruby是一门...

    JAVA学习笔记详解

    ### JAVA学习笔记详解 #### 第一讲 Java语言概述 ##### 课前思考: 1. **新的编程语言是否需要借鉴以前的编程语言?** - 新的编程语言在设计时往往会借鉴已有语言的成功经验和失败教训。Java 作为一种相对较新的...

    ROR 学习笔记系列一 Windows XP下环境安装配置(2)

    在本篇ROR(Ruby on Rails)学习笔记中,我们将深入探讨如何在Windows XP操作系统上进行环境的安装和配置。Ruby on Rails是一个流行的开源Web应用框架,它基于Ruby编程语言,以其“DRY”(Don't Repeat Yourself)...

    cucumber学习笔记V1.0

    ### Cucumber 学习笔记 V1.0 #### Cucumber 的特点 Cucumber 是一个用于执行功能描述作为自动化测试工具的框架。它所使用的语言被称为 Gherkin,一种旨在简化功能描述并使其易于理解的语言。Cucumber 的核心优势...

    ruby on rails 实践

    第一章“Ruby on Rails概述”,介绍了Ruby on Rails的基本概念和开发环境的搭建方法。通过这一章的学习,读者将对Rails框架有一个整体的认识,并了解如何搭建开发环境以及设计用户界面(UI)。 第二章“Rails中的...

    GTK学习笔记(简体中文版)

    ### GTK学习笔记(简体中文版) #### 一、GTK简介 GTK (GIMP Toolkit) 是一种用于构建图形用户界面的工具包,最初是作为 GIMP(GNU 图像处理程序)的一部分开发出来的。随着发展,GTK 成为了一个多平台的 GUI 开发...

    WEB学习笔记第三期关于JavaScript的内容

    在“WEB学习笔记第三期关于JavaScript的内容”中,我们可以看到一些与图像、多媒体处理以及文本格式化的相关知识。 1. **图像处理**: - 默认情况下,图像没有边框,但可以通过CSS设置边框样式。若未设置链接,...

    Ruby初学笔记之Hello World

    安装了个Ruby193,写了第一个Ruby程序,来记录下自己学习点滴。 首先在Ruby的新建个文件夹Sample,再新添加个文件,名字HelloWorld.rb 内容就是: 代码如下: puts “Hello,World!”  当然也可以先声明变量,如后再...

    ruby-kaigi-notes-源码.rar

    1. **Ruby 最新特性**:Ruby Kaigi 通常会介绍即将发布的 Ruby 新版本中的特性,如性能优化、语法改进等。通过源码,我们可以学习如何使用这些新特性,提升代码效率。 2. **最佳实践**:参会者笔记可能包含了他们在...

    jdk6学习笔记(17,18,19,20,21)

    这些学习笔记涵盖了第17到21章的内容,以下是其中的一些关键知识点: 1. **枚举(Enum)的增强**: JDK 6对枚举类型进行了增强,支持枚举常量之间的比较,可以实现Comparable接口,还引入了枚举套接字(EnumSet)...

    rubylearningdotorg:Ruby学习课程

    描述中的"Ruby学习课程2015年第62批"暗示这是一次组织的系统性学习活动,可能是线上课程或者研讨会的形式,而"这个仓库存储了我所有的课程和笔记"表明这些资源被整理并保存在版本控制系统如Git中,便于管理和分享。...

    Java JDK 6学习笔记——ppt简体版

    Java JDK 6学习笔记主要涵盖了Java开发工具集(Java Development Kit)的第六个主要版本,这是一个重要的里程碑,因为它为开发者提供了许多新特性和改进。在这个版本中,Java平台的稳定性和性能得到了显著提升,同时...

Global site tag (gtag.js) - Google Analytics