MST
星途 面试题库

面试题:Ruby中简单缓存机制的实现

请使用Ruby实现一个简单的内存缓存机制,要求能够缓存函数的计算结果,下次调用相同参数的函数时直接返回缓存的结果。可以使用基本的数据结构如哈希表来完成。
16.3万 热度难度
编程语言Ruby

知识考点

AI 面试

面试题答案

一键面试
class Memoize
  def initialize(&block)
    @block = block
    @cache = {}
  end

  def call(*args)
    unless @cache.key?(args)
      @cache[args] = @block.call(*args)
    end
    @cache[args]
  end
end


# 使用示例
def expensive_computation(a, b)
  sleep(2) # 模拟一个耗时的计算
  a + b
end

memoized_expensive_computation = Memoize.new { |a, b| expensive_computation(a, b) }

puts memoized_expensive_computation.call(2, 3) # 第一次调用,会执行耗时计算
puts memoized_expensive_computation.call(2, 3) # 第二次调用,直接从缓存返回结果