From: mail@... Date: 2017-02-17T15:43:09+00:00 Subject: [ruby-core:79577] [Ruby trunk Bug#13102] Confusing method name: Set#delete? Issue #13102 has been updated by Stefan Sch����ler. I was referring to the use of bang [method names](http://ruby-doc.org/core-2.4.0/doc/syntax/methods_rdoc.html#label-Method+Names) in the Ruby core library: > [...] In ruby core library the dangerous method implies that when a method ends with a bang (`!`), it indicates that unlike its non-bang equivalent, permanently modifies its receiver. Almost always, ruby core library will have a non-bang counterpart (method name which does NOT end with `!`) of every bang method (method name which does end with `!`) that does not modify the receiver. This convention is typically true for ruby core library but may or may not hold true for other ruby libraries. ---------------------------------------- Bug #13102: Confusing method name: Set#delete? https://bugs.ruby-lang.org/issues/13102#change-63009 * Author: Kai Kuchenbecker * Status: Open * Priority: Normal * Assignee: * Target version: * ruby -v: 2.4.0 * Backport: 2.2: UNKNOWN, 2.3: UNKNOWN, 2.4: UNKNOWN ---------------------------------------- Greetings, a colleague of mine who recently started to learn Ruby managed to greatly confuse me today when he used Set#delete? which he claimed would delete an item from a set. Reading the documentation I suspect the method was meant to be named delete! as it behaves similiar to Array#uniq! and such methods. If this is not a mistake, I'd still suggest to change the method name since I think it is very surprising for a method ending in a question mark to have a side effect. Best regards, Kai -- https://bugs.ruby-lang.org/ Unsubscribe: