加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – Sinatra条件

发布时间:2020-12-17 03:27:56 所属栏目:百科 来源:网络整理
导读:在研究了ruby大约一个月后,我决定继续前往西纳特拉.我需要帮助理解一个说明条件和路由的Sinatra片段.有人可以清楚地解释一下逐行的情况以及这个区块实际上是如何随机化路线的吗? set(:probability) { |value| condition { rand = value } } get '/win_a_car
在研究了ruby大约一个月后,我决定继续前往西纳特拉.我需要帮助理解一个说明条件和路由的Sinatra片段.有人可以清楚地解释一下逐行的情况以及这个区块实际上是如何随机化路线的吗?

set(:probability) { |value| condition { rand <= value } }

  get '/win_a_car',:probability => 0.1 do
    "You won!"
  end

  get '/win_a_car' do
    "Sorry,you lost."
  end

解决方法

这种情况的整体行为将导致第一条路线在大约10%的时间内被加载,第二条路线将在其余时间加载.

第一条路线使用通过概率设定的条件.上面设置的概率将通过其值并测试以查看0-1之间的随机#是否小于该概率值.由于该值为0.1,因此将在10%的时间内返回true.

另外90%的时间将调用第二条路线.较早的路由优先,将调用找到的第一个有效路由.

如果您想在另一个设置中设置概率,则需要使用Proc推迟对概率的评估.

阅读有关条件路线的更多信息:
http://www.sinatrarb.com/intro#Conditions

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读