ruby学习笔记(8)-"静态方法的4种写法"与"单例方法的2种写法"

#静态方法的4种写法
class Test
  def Test.StaticMethod1
    puts "Test.StaticMethod1"
  end

  def self.StaticMethod2
    puts "Test.StaticMethod2"
  end

  class << Test
    def StaticMethod3
      puts "Test.StaticMethod3"
    end
  end

  class << self
    def StaticMethod4
      puts "Test.StaticMethod4"
    end
  end
end

Test.StaticMethod1
Test.StaticMethod2
Test.StaticMethod3
Test.StaticMethod4

 

#单例方法的2种写法

class Test
  def method1
    puts "method1"
  end
end

t1 = Test.new

def t1.singleMethod1
  puts "t1.singleMethod1"
end

class << t1
  def singleMethod2
    puts "t1.singleMethod2"
  end
end

t2 = Test.new

t1.method1
t2.method1
t1.singleMethod1
t1.singleMethod2
#t2.singleMethod1 #将报错
#t2.singleMethod2 #将报错
时间: 2024-10-30 06:28:05

ruby学习笔记(8)-"静态方法的4种写法"与"单例方法的2种写法"的相关文章

iOS中类单例方法的一种实现

在Cocos2D编程中,很多情况我们需要类只生成一个实例,这称之为该类的单例类. 一般我们在类中这样实现单例方法: +(instancetype)sharedInstance{ static Foo *sharedInstance; if(!sharedInstance){ sharedInstance = [Foo new]; } return sharedInstance; } 注意静态变量sharedInstance也可以放到类外部去. 但是如果是多线程环境中,上述方法并不能一定保证生成唯

ruby学习笔记(11)--symbol与hash参数

symbol是啥就不深入的讨论了,只简单说说symbol的好处 ruby内部对于每个对象,都会有一个数字id用来标识并区分,可以用xxx.object_id来查看 puts "0001".object_id puts "0001".object_id puts "0001".object_id puts "0001".object_id 输出结果类似如下: 32088750320887303208871032088690 可以

Ruby学习笔记_索引贴

学习Ruby也有段时间了,在学习的同时也做了些笔记并发到了园子睐.看到园子里的大虾们在出了一系列文章后都会做个索引贴,这样很方便,所以本人今天抽了个空就把它整理了下,方便自己的同时也方便感兴趣的朋友.   Ruby学习笔记目录: 1.Ruby入门 2.Ruby-循环与选择结构 3.Ruby-String 4.Ruby-Array 5.Ruby-Hash 6.Ruby-Block, Proc and Lambda 7.Ruby-正则表达式 8.Ruby-Symbol 9.Ruby-Method,C

MySQL学习笔记之数据的增、删、改实现方法_Mysql

本文实例讲述了MySQL学习笔记之数据的增.删.改实现方法.分享给大家供大家参考,具体如下: 一.增加数据 插入代码格式: insert into 表明 [列名-] values (值-) create table test21(name varchar(32)); insert into test21 (name) values ('huangbiao'); 插入原则: 1.插入的数据应与字段的数据类型相同 2.数据的大小应该在列的规定范围内 3.在values中列出的数据位置必须与被加入的列

Ruby学习笔记-Block, Proc and Lambda

1.Block: Ruby中的块就是由多行代码组成的一个代码块,通常可以把它认为是一个匿名方法,常用来迭代一个数组或范围(如each, times方法):语法格式如下: {                     //code }             OR do                   //code end          块变量:当创建一个块时,在两个竖线之间(如: | i |)被称作块变量,作用和一个正常方法的参数一样:如:5.each{| x |  puts x }   

Ruby学习笔记-String

字符串(String) 1.创建字符串        在Ruby中可以使用单引号和双引号两种方法来创建一个字符串.但是使用这两种方式创建特殊字符串时,效果有很大区别.        双引号创建字符串:Ruby会对字符串中的转义字符和特殊字符进行替换;        单引号创建字符串:不进行替换 示例: puts 'This stirng \n delimited by single quotes'                  #\n:换行符 puts "This stirng \n del

php实现跨域提交form表单的方法【2种方法】_php技巧

本文实例讲述了php实现跨域提交form表单的方法.分享给大家供大家参考,具体如下: 有时我们为了网站安全考虑,我们不允许直接跨域提交form表单数据,如果我们自己有这个需求呢?下面我们来介绍两种跨域的方法解决直接跨域问题. 下面我们来看看两种php跨域提交form的方法 一.通过php curl function curlPost($url,$params) { $postData = ''; foreach($params as $k => $v) { $postData .= $k . '

ruby学习笔记(1)--初识语法

虽然ruby/ruby on rails从2007年就一直获奖无数,但身为一个中国人,一直对小日本创造的东西不怎么感兴趣,想想其实也没必要,技术本身是无国界的,日本其实也有值得学习的地方(扯远了,呵) 单从技术而言,ruby本身确实很爽,令程序员的工作变得轻松有趣! 下面的代码演示了如何找出100以内的素数: using System; namespace Mersenne { class Program { static void Main(string[] args) { for (int

Ruby学习笔记之Ruby 对象

大部分 Ruby 程序,它们的设计,逻辑,动作,都是围绕着对象进行的.写一个 Ruby 程序,主要的工作就是去创建对象,然后给它们能力,让它们可以去执行动作. Ruby 是 OOP 语言,就是面向对象的语言,你执行的计算,数据处理,输入与输出这些动作,都是通过创建对象,然后让这个对象去执行指定的动作来完成的.对象(object)在现实世界里,就是一个东西.一个苹果是一个对象,一张桌子也是一个对象. 每个对象是一个特定的类的实例(instance),对象的行为大部分是在它们所属的那个类上面定义的方