主页
论坛
新帖
最新消息
新帖
最新动态
制作互助群
登录
注册
Toggle sidebar
Toggle sidebar
菜单
安装应用
安装
回复主题
【进站必读】宝可饭堂社区全局规定v1.10
关于坚决维护同人创作社群秩序与共识的公告
论坛
独立开发
进阶教程
Ruby中的方法
禁用JavaScript。为了获得更好的体验,请在运行之前启用浏览器中的JavaScript。
您正在使用一款已经过时的浏览器!部分功能不能正常使用。
请尝试升级或使用
其他浏览器
。
信息
<blockquote data-quote="小语咒?" data-source="post: 2320" data-attributes="member: 123"><p><h3>方法</h3><p>方法是较长代码段的快捷方式。创建方法使用 def 关键字,后跟方法名,并以 end 结束。</p><p></p><p>[code=ruby]</p><p>def my_method</p><p> print "Printing from my_method!"</p><p>end</p><p></p><p>my_method #=> "Printing from my_method!"</p><p>[/code]</p><p></p><h3>方法作用域</h3><p>方法内部无法访问方法外部的变量,反之亦然。</p><p></p><p>[code=ruby]</p><p>a = 10</p><p></p><p>def work</p><p> print a</p><p>end</p><p></p><p>work #=> NameError: Undefined variable or method 'a'</p><p>[/code]</p><p></p><p>方法内部的变量只在方法内部有效。</p><p></p><p>[code=ruby]</p><p>def work</p><p> a = 10</p><p>end</p><p></p><p>work</p><p></p><p>print a #=> NameError: Undefined variable or method 'a'</p><p>[/code]</p><p></p><h3>方法参数</h3><p>方法可以接受参数。</p><p></p><p>[code=ruby]</p><p>def work(my_argument)</p><p> print my_argument</p><p>end</p><p></p><p>work(1) # 打印出 '1'</p><p>[/code]</p><p></p><p>可以传递多个参数。</p><p></p><p>[code=ruby]</p><p>def work(a, b, c)</p><p> print a * b * c</p><p>end</p><p></p><p>work(1, 2, 3) #=> 6</p><p>[/code]</p><p></p><p>方法可以有默认参数。</p><p></p><p>[code=ruby]</p><p>def mult(a, b = 1)</p><p> print a * b</p><p>end</p><p></p><p>mult(6) #=> 6 (b 默认为 1)</p><p>[/code]</p><p></p><h3>显式和隐式调用</h3><p>变量和方法可以同名,使用 () 区分。</p><p></p><p>[code=ruby]</p><p>var = "Variable!"</p><p></p><p>def var</p><p> print "Method!"</p><p>end</p><p></p><p>print var #=> "Variable!"</p><p>print var() #=> "Method!"</p><p>[/code]</p><p></p><h3>返回值</h3><p>方法调用会返回一个值。</p><p></p><p>[code=ruby]</p><p>def work(a_number)</p><p> return a_number</p><p>end</p><p></p><p>print work(6) #=> 6</p><p>[/code]</p><p></p><p>return 关键字会立即退出方法。</p><p></p><p>[code=ruby]</p><p>def work</p><p> return 1</p><p> print "This will never be printed!"</p><p>end</p><p></p><p>print work #=> 1</p><p>[/code]</p><p></p><h3>Nil</h3><p>print 方法返回 nil。</p><p></p><p>[code=ruby]</p><p>var = print 1 # 打印出 1</p><p>print var #=> nil</p><p>[/code]</p><p></p><h3>显式和隐式返回</h3><p>方法默认返回最后一行代码的结果。</p><p></p><p>[code=ruby]</p><p>def mult(a, b = 2)</p><p> a * b</p><p>end</p><p></p><p>var = mult(2, 2)</p><p>print var #=> 4</p><p>[/code]</p><p></p><p>可以使用显式的 return 关键字。</p><p></p><p>[code=ruby]</p><p>def mult(a, b = 2)</p><p> return a * b</p><p> -1 # 这行永远不会执行</p><p>end</p><p></p><p>var = mult(2, 2)</p><p>print var #=> 4</p><p>[/code]</p><p></p><h3>用例示例</h3><p>[code=ruby]</p><p>def get_seconds(minute)</p><p> if minute < 0</p><p> return "You cannot have a negative amount of minutes!"</p><p> end</p><p> minute * 60</p><p>end</p><p></p><p>print get_seconds(4) #=> 240</p><p>print get_seconds(1) #=> 60</p><p>print get_seconds(0) #=> 0</p><p>print get_seconds(-1) #=> "You cannot have a negative amount of minutes!"</p><p>[/code]</p><p></p><p>[code=ruby]</p><p>def seconds_lived(age)</p><p> if age < 0</p><p> return 0</p><p> elsif age > 122</p><p> return "Nobody has ever lived longer than 122 years!"</p><p> end</p><p> 60 * 60 * 24 * 365 * age</p><p>end</p><p></p><p>print seconds_lived(16) #=> 504576000</p><p>print seconds_lived(121) #=> 3815856000</p><p>print seconds_lived(122) #=> 3847392000</p><p>print seconds_lived(123) #=> "Nobody has ever lived longer than 122 years!"</p><p>print seconds_lived(0) #=> 0</p><p>print seconds_lived(-1) #=> 0</p><p>[/code]</p></blockquote><p></p>
[QUOTE="小语咒?, post: 2320, member: 123"] [HEADING=2]方法[/HEADING] 方法是较长代码段的快捷方式。创建方法使用 def 关键字,后跟方法名,并以 end 结束。 [code=ruby] def my_method print "Printing from my_method!" end my_method #=> "Printing from my_method!" [/code] [HEADING=2]方法作用域[/HEADING] 方法内部无法访问方法外部的变量,反之亦然。 [code=ruby] a = 10 def work print a end work #=> NameError: Undefined variable or method 'a' [/code] 方法内部的变量只在方法内部有效。 [code=ruby] def work a = 10 end work print a #=> NameError: Undefined variable or method 'a' [/code] [HEADING=2]方法参数[/HEADING] 方法可以接受参数。 [code=ruby] def work(my_argument) print my_argument end work(1) # 打印出 '1' [/code] 可以传递多个参数。 [code=ruby] def work(a, b, c) print a * b * c end work(1, 2, 3) #=> 6 [/code] 方法可以有默认参数。 [code=ruby] def mult(a, b = 1) print a * b end mult(6) #=> 6 (b 默认为 1) [/code] [HEADING=2]显式和隐式调用[/HEADING] 变量和方法可以同名,使用 () 区分。 [code=ruby] var = "Variable!" def var print "Method!" end print var #=> "Variable!" print var() #=> "Method!" [/code] [HEADING=2]返回值[/HEADING] 方法调用会返回一个值。 [code=ruby] def work(a_number) return a_number end print work(6) #=> 6 [/code] return 关键字会立即退出方法。 [code=ruby] def work return 1 print "This will never be printed!" end print work #=> 1 [/code] [HEADING=2]Nil[/HEADING] print 方法返回 nil。 [code=ruby] var = print 1 # 打印出 1 print var #=> nil [/code] [HEADING=2]显式和隐式返回[/HEADING] 方法默认返回最后一行代码的结果。 [code=ruby] def mult(a, b = 2) a * b end var = mult(2, 2) print var #=> 4 [/code] 可以使用显式的 return 关键字。 [code=ruby] def mult(a, b = 2) return a * b -1 # 这行永远不会执行 end var = mult(2, 2) print var #=> 4 [/code] [HEADING=2]用例示例[/HEADING] [code=ruby] def get_seconds(minute) if minute < 0 return "You cannot have a negative amount of minutes!" end minute * 60 end print get_seconds(4) #=> 240 print get_seconds(1) #=> 60 print get_seconds(0) #=> 0 print get_seconds(-1) #=> "You cannot have a negative amount of minutes!" [/code] [code=ruby] def seconds_lived(age) if age < 0 return 0 elsif age > 122 return "Nobody has ever lived longer than 122 years!" end 60 * 60 * 24 * 365 * age end print seconds_lived(16) #=> 504576000 print seconds_lived(121) #=> 3815856000 print seconds_lived(122) #=> 3847392000 print seconds_lived(123) #=> "Nobody has ever lived longer than 122 years!" print seconds_lived(0) #=> 0 print seconds_lived(-1) #=> 0 [/code] [/QUOTE]
验证
国内使用最多的GBA蓝本是?(3个汉字)
回复帖子
最新帖子
全
我想切换视角讲述故事
最新更新:全民制作人
星期三,21:43
开发问题
Z
将GBA打包成APK
最新更新:zheyeyeye
星期三,21:27
GBA教程
Z
【进站必读】宝可饭堂社区全局规定v1.10
最新更新:z1652646304
星期三,20:25
公告规定
雨
pokeemerald怎么改箱子数
最新更新:雨落天晴
星期二,10:16
开发问题
[讨论]什么契机导致你想做游戏的
最新更新:A原翼
星期一,00:12
其他相关讨论
论坛统计
主题
559
消息
2,422
成员
3,879
最新成员
stonezz
联系我们
QQ
2201858342
邮箱
pokefans@qq.com
论坛
独立开发
进阶教程
Ruby中的方法
顶部