From: "nobu (Nobuyoshi Nakada)" Date: 2012-10-26T11:59:36+09:00 Subject: [ruby-core:48297] [ruby-trunk - Feature #6023][Rejected] Add "a ?= 2" support for meaning "a = a.nil? ? 2 : a" Issue #6023 has been updated by nobu (Nobuyoshi Nakada). Status changed from Assigned to Rejected ---------------------------------------- Feature #6023: Add "a ?= 2" support for meaning "a = a.nil? ? 2 : a" https://bugs.ruby-lang.org/issues/6023#change-31591 Author: rosenfeld (Rodrigo Rosenfeld Rosas) Status: Rejected Priority: Normal Assignee: matz (Yukihiro Matsumoto) Category: core Target version: next minor I've just proposed this idea to Groovy and I thought the same semantics would be interesting to have in Ruby too: http://jira.codehaus.org/browse/GROOVY-5306 This is a minor, but important, difference to the "a ||= 2" syntax. This would be a caching/memoization operator, and it would allow code like this: a = nil a ?= false # a is false now a ?= true # a is still false This contrasts with a = nil a ||= false # a is false now a ||= true # a is true now -- http://bugs.ruby-lang.org/