gpt4 book ai didi

Ruby self在不同环境的含义

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 26 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Ruby self在不同环境的含义由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

而由于ruby作为一个完全纯净的面向对象语言,任何东东都是对象,方法是对象,类也是对象...,所以self就会有很多环境,区分不同环境的self含义才能更好的理解程序的含义 1、Top Level Context Ruby代码 puts self 打印出main,这个代表Object的默认对象main. 2、在class或module的定义中: 在class和module的定义中,self代表这个class或这module对象: Ruby代码 class S puts 'Just started class S' puts self module M puts 'Nested module S::M' puts self end puts 'Back in the outer level of S' puts self end 输出结果: 写道 >ruby self1.rb Just started class S Nested module S::M S::M Back in the outer level of S >Exit code: 0 3、在实例的方法定义中: 这点和java的this代表的东东一样:程序自动传递的调用这个方法的对象 Java代码 class S def m puts 'Class S method m:' puts self end end s = S.new s.m 运行结果: 写道 >ruby self2.rb Class S method m: #<S:0x2835908> >Exit code: 0 4、在单例方法或者类方法中: 单例方法是针对一个对象添加的方法,只有这个对象拥有和访问这个方法,这时候self是拥有这个方法的对象: Ruby代码 # self3.rb obj = Object.new def obj.show print 'I am an object: ' puts "here's self inside a singleton method of mine:" puts self end obj.show print 'And inspecting obj from outside, ' puts "to be sure it's the same object:" puts obj 运行结果: 写道 ruby self3.rb I am an object: here's self inside a singleton method of mine: #<Object:0x2835688> And inspecting obj from outside, to be sure it's the same object: #<Object:0x2835688> >Exit code: 0 在类方法中self代表这个类对象: Ruby代码 # self4.rb class S def S.x puts "Class method of class S" puts self end end S.x 运行结果: 写道 >ruby self4.rb Class method of class S >Exit code: 0 从上面的例子我们可以看出不管是ruby的self还是java的this都表示在当前的环境下你可以访问的当前的或者默认的对象.

最后此篇关于Ruby self在不同环境的含义的文章就讲到这里了,如果你想了解更多关于Ruby self在不同环境的含义的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com