`
量产型人型自走炮
  • 浏览: 8485 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论
阅读更多
恩这个我知道
举个例子Enumerable#find
def find
 for i in 0...size
  value = self[i] 
  return value if yield(value)#我怎么确定这个return具体跳到哪里
 end
return nil 

分享到:
评论
45 楼 RednaxelaFX 2009-04-16  
量产型人型自走炮 写道

就昨天你那个sample 跳回主作用域的(这个怎么描述来着..)irb里面报错jruby正常退出ps:公开百合遇上瓶颈了= =有什么线代和分形几何的书推荐么?

上了大学之后我数学就荒废了……数学别问我。要做题的话某套11本的习题很强悍,但名字我想不起来了 =v= 只记得是俄国人写的经典习题集。
44 楼 量产型人型自走炮 2009-04-16  
就昨天你那个sample 跳回主作用域的(这个怎么描述来着..)irb里面报错jruby正常退出
ps:公开百合遇上瓶颈了= =有什么线代和分形几何的书推荐么?
43 楼 RednaxelaFX 2009-04-16  
量产型人型自走炮 写道

原来NB默认是jruby...难怪跟irb某些行为不一致

什么行为不一致了,贴出来看看?发现不一致的话可以认为是bug,可以到JRuby的JIRA去报,他们会很高兴的。
42 楼 量产型人型自走炮 2009-04-16  
原来NB默认是jruby...
难怪跟irb某些行为不一致
41 楼 RednaxelaFX 2009-04-16  
对了,继续版聊。
如果你不太确定你写的Ruby代码被解析成啥样了,可以用这个网页:
http://aikelab.net/rubytree/index.cgi
把代码片段贴到文本框里,或者是指定整个源文件,按确定之后解析树就会显示在文本框的上面。一开始是收起来的树,要自己点加号才会展开。
40 楼 RednaxelaFX 2009-04-15  
量产型人型自走炮 写道
没有吧= =带参数的宏还是满多的嘛
QT里面就满地都是

不,我是没见过这样写的YIELD而已。带参数的宏自然是很多。
要有兴趣你可以看看Boost的Coroutine,也有yield...
39 楼 量产型人型自走炮 2009-04-15  
没有吧= =带参数的宏还是满多的嘛
QT里面就满地都是
38 楼 RednaxelaFX 2009-04-15  
night_stalker 写道
汗,我还在赶紧 google C 里面的 yield……

同是放狗党的路过……
在google.com/codesearch里搜了:
37 楼 RednaxelaFX 2009-04-15  
量产型人型自走炮 写道
嘛~我的意思是这样
#define YIELD(word) (printf("hello%s",word))

还真是没见过这种用法……现在见过了 OTL
36 楼 night_stalker 2009-04-15  
量产型人型自走炮 写道

嘛~我的意思是这样C代码 #define YIELD(word) (printf("hello%s",word))  #define YIELD(word) (printf("hello%s",word))然后在函数里面YIELD("some word")

汗,我还在赶紧 google C 里面的 yield……
35 楼 量产型人型自走炮 2009-04-15  
嘛~我的意思是这样
#define YIELD(word) (printf("hello%s",word))

然后在函数里面YIELD("some word")
34 楼 RednaxelaFX 2009-04-15  
量产型人型自走炮 写道
问点题外话ruby实现的那个yacc和lex好用不-v-

racc?没怎么用过,没有第一手经验……

C里的yield宏……你是说对Linux内核的sys_sched_yield()调用还是啥别的?
我觉得理解Ruby的yield最好是不要牵扯别的语言进来,不然更混乱……
33 楼 量产型人型自走炮 2009-04-15  
问点题外话
ruby实现的那个yacc和lex好用不-v-
32 楼 RednaxelaFX 2009-04-15  
量产型人型自走炮 写道

恩 proc连返回的栈地址都闭包了= =是这样吧

可以这么理解
31 楼 量产型人型自走炮 2009-04-15  
总结一下
这个proc有点像C里面命名为yield的宏...但是包含了定义时外部上下文 不止改变某个外部值会影响外部状态 甚至连返回的栈地址都闭包了

这次没错了吧= =
30 楼 night_stalker 2009-04-15  
哦,下划线还有这个作用..
29 楼 RednaxelaFX 2009-04-15  
RednaxelaFX 写道
Ruby里的block/iterator常是配合自定义控制结构来使用的。

例如说loop、each、open等等……
def loop
  while true
    yield
  end
end

each不用说了。
open如果后面跟有block的话,就会在block执行结束后把文件close掉。也算是自定义控制流。
28 楼 量产型人型自走炮 2009-04-15  
恩 proc连返回的栈地址都闭包了= =是这样吧
27 楼 RednaxelaFX 2009-04-15  
其实我想起我的草稿箱里有一篇关于Ruby 1.8和1.9的Proc的文……但是还在太监状态,代码是有一堆,文字还没码好。诶。
26 楼 RednaxelaFX 2009-04-15  
irb(main):001:0> def foo(p)
irb(main):002:1>   &p
irb(main):003:1> end
SyntaxError: compile error
(irb):2: syntax error, unexpected tAMPER
        from (irb):3
irb(main):004:0> quit

C:\Users\rednaxela-w7b>irb
irb(main):001:0> def foo(&p)
irb(main):002:1>   p
irb(main):003:1> end
=> nil
irb(main):004:0> foo { return }
=> #<Proc:0x03124d5c@(irb):4>
irb(main):005:0> _[]
LocalJumpError: unexpected return
        from (irb):4
        from (irb):5:in `[]'
        from (irb):5
        from :0

继续放无聊代码……

只要你在“全局”作用域里调用了带有return的Proc都会像这样……

相关推荐

    如何在QQ上使用美图聊聊?.docx

    在较早的版本中,你可能会直接找到“图片”选项,但在2013年4.2.0版及以上的新版QQ中,必须通过“拍照”功能才能触发美图聊聊。 3. **选择美图聊聊**: 在选择拍照后,系统会弹出一个窗口,此时你需要选择“美图聊...

    安卓开发-百度推聊应用.zip.zip

    2. **即时通讯技术**:百度推聊应用可能使用了自定义的消息协议或者基于XMPP、MQTT等协议进行实时通信。 3. **数据存储**:可能使用SQLite数据库存储用户信息、聊天记录等数据,或者利用sharedPreferences存储轻量...

    百度推聊应用.zip

    【标题】"百度推聊应用.zip" 是一个包含Android源码的学习资源,它可能是百度公司某款聊天应用的源代码示例。通过分析这个压缩包,我们可以深入理解Android应用程序的开发流程,掌握核心组件和功能的实现。 【描述...

    Android应用源码之百度推聊应用.zip

    推聊应用可能使用SQLite来保存用户信息、聊天记录等。研究数据库相关的代码,可以学习到如何创建表、插入/查询数据,以及如何使用ContentProvider进行数据共享。 5. **网络通信**:为了实现实时聊天,应用可能采用...

    安卓Andriod源码——百度推聊应用.zip

    这意味着我们可以期待在这个压缩包中找到用Java或Kotlin编写的Android工程文件,包括Activity、Service、BroadcastReceiver等组件,以及与百度Push SDK相关的配置和接口调用。 【标签】:“安卓”、“android”、...

    应用源码之百度推聊应用.zip

    《深入剖析:百度推聊应用源码学习》 在Android开发领域,源码学习是提升技术能力的重要途径。本资源“应用源码之百度推聊应用.zip”为我们提供了一个宝贵的实践平台,它涵盖了JAVA ANDROID的相关知识,适合作为...

    Android高级应用源码-百度推聊应用.zip

    【标题】"Android高级应用源码-百度推聊应用.zip" 涉及的主要知识点是Android应用程序开发,尤其是使用百度推送服务(Baidu Push SDK)进行实时通讯的应用实践。这个压缩包包含的是一个完整的Android项目源码,可以...

    安卓Android源码——百度推聊应用.zip

    【压缩包子文件的文件名称】:“Baidu-Push-SDK-Android-L2-3.2.0”是百度推送服务的SDK版本号,表示这个压缩包内包含了特定版本(L2,可能是某个特定功能的代号,3.2.0是具体的版本号)的Android版百度Push SDK。...

    QQ轻聊版7.3正式版发布.docx

    6. **与普通版共存**:轻聊版与普通版QQ可以同时存在于同一台电脑上,用户可以根据不同场景切换使用,满足多样化的使用需求。 7. **好友列表和聊天界面**:好友列表清晰明了,每个联系人的信息简洁直观;聊天界面则...

    QQ轻聊版好不好用.docx

    这意味着用户在使用轻聊版进行聊天时,不会遇到恼人的弹窗广告,不会在聊天窗口中看到任何图文或文字广告,从而保证了聊天过程的纯粹性和专注度。对于经常被广告打扰的用户来说,这一点无疑具有极大的吸引力。 其次...

    【JavaScript源代码】Vue在H5 项目中使用融云进行实时个人单聊通讯.docx

    在H5项目中集成实时个人单聊通讯功能,可以借助第三方服务如融云(RongCloud)。融云提供了一套API和服务,使得开发者能够方便地实现实时通信功能,包括聊天、群组聊天等。以下是将融云集成到Vue.js项目中的详细步骤...

    百度推聊应用.zip项目安卓应用源码下载

    在百度推聊应用中,你将看到如何使用这些组件来构建一个完整的应用,例如,Activity用于用户界面交互,Service处理后台通讯任务,BroadcastReceiver接收系统或自定义广播事件。 2. **网络通信**:即时通讯的核心是...

    ewebeditor v5.5 for ASP 戒聊修改版.rar

    考虑到“戒聊修改版”的特性,开发者在使用时还需要关注安全问题,如防止XSS攻击,以及优化性能,如减少不必要的网络请求,优化图片上传和处理流程,确保编辑器在保持功能的同时,也能高效稳定地运行。 综上所述,...

    QQ热聊怎么用.docx

    以下是关于如何使用QQ热聊的详细步骤和相关知识点: 1. **开启热聊功能**: - 首先,确保您的手机已经安装了最新版本的QQ应用程序,并且已经登录了您的QQ账号。 - 在QQ主界面,通常位于底部的导航栏,找到并点击...

    qq热聊怎么创建.docx

    请注意,虽然系统可能会提示在WiFi环境下使用,但实际在移动数据下也能创建和参与热聊。 4. **创建热聊** 要创建自己的热聊,你需要点击“创建热聊”按钮(如果该功能可见)。按照提示设置热聊的主题、简介,还...

    百度推聊.zip

    《深入剖析Android源码:以“百度推聊”为例》 在移动开发领域,Android操作系统以其开源、自由的特性,吸引了无数开发者投身其中。对于有志于提升Android开发技能的程序员来说,理解并掌握Android源码是至关重要的...

    ewebeditor v5.5 for ASP 戒聊修改版.RAR

    《ewebeditor v5.5 for ASP 戒聊修改版》是一款专为ASP平台设计的网页编辑器,它主要用于在Web应用中提供便捷的富文本编辑功能。此修改版是针对ewebeditor v5.5版本进行了一定的优化和调整,以适应更严格的聊天环境...

    [AndrodeApe.com]百度推聊完整版.zip

    在“pushMessage完整版”这部分源码中,我们可以研究百度云推送是如何工作的。这涉及到Android后台服务的运用,用于监听并处理来自服务器的推送消息。服务组件在后台运行,即使用户退出应用,也能保持与服务器的连接...

Global site tag (gtag.js) - Google Analytics