小编Xul*_*lnn的帖子

哈希表的键在哪里?

哈希表是一种可以将键映射到值的数据结构。给定一个键,哈希函数将计算然后告诉我们存储该值的槽/桶的索引。如果多个键映射到同一个槽,它可能从这个槽开始一个链表。如果值没有足够的槽位,它将执行调整大小操作以找到更大的空间。

  1. 哈希表的第一级桶总是一个数组吗?
  2. 密钥存储在哪里?或者是不是每次哈希函数都需要存储密钥并计算位置?
  3. 在Ruby语言中,{:name => "Wix", :age => 18}像哈希表这样的哈希对象算不算哈希表?如果是这样,我需要问题 2 的答案。

ruby algorithm hash

0
推荐指数
1
解决办法
726
查看次数

转储到yaml文件后为什么负值变为正值?

我有一个简单的sinatra应用程序使用yaml文件来处理数据.其中一个特点是User可以投票或否决Question.投票功能很好,但在实施否决功能时我遇到了一些奇怪的事情.

简单地说:

  • 当问题的当前votes_count为正(>= 1)时,数字将正确减少
  • 但是当一个问题的当前votes_count值为零或负数时,该数字将在data散列中成功减少,但在转储data哈希进入yaml文件后,负数变为正数.

这是yaml文件Question:

'1': !ruby/hash:Sinatra::IndifferentHash
  title: " Best way to require all files from a directory in ruby?"
  description: What's the best way to require all files from a directory in ruby ?
  user_id: '3'
  votes_count: 0

# other user information
Run Code Online (Sandbox Code Playgroud)

这是与否决权功能相关的路由处理程序:

post "/questions/:id/veto" do
  check_vote_validity_for_question(params[:id])
  @question = Question.find_by(:id, params[:id])
  @question.votes_count = (@question.votes_count.to_i - 1)
  Question.update(params[:id], votes_count: @question.votes_count )
  # omit …
Run Code Online (Sandbox Code Playgroud)

ruby yaml sinatra

0
推荐指数
1
解决办法
123
查看次数

标签 统计

ruby ×2

algorithm ×1

hash ×1

sinatra ×1

yaml ×1