< :前の番号
^ :番号順リスト
> :次の番号
P :前の記事(スレッド移動)
N :次の記事(スレッド移動)
|<:前のスレッド
>|:次のスレッド
^ :返事先
_:自分への返事
>:同じ返事先を持つ記事(前)
<:同じ返事先を持つ記事(後)
---:分割してスレッド表示、再表示
| :分割して(縦)スレッド表示、再表示
~ :スレッドのフレーム消去
.:インデックス
..:インデックスのインデックス
Issue #14336 has been updated by Hanmac (Hans Mackowiak).
we might talk about the different size of RString and RSymbol struct in MRI
or why Strings bigger than 23 characters are different than < 23 ones
----------------------------------------
Feature #14336: Create new method String#symbol? and deprecate Symbol class
https://bugs.ruby-lang.org/issues/14336#change-69540
* Author: dsferreira (Daniel Ferreira)
* Status: Rejected
* Priority: Normal
* Assignee:
* Target version:
----------------------------------------
From the discussions on the three previous issues related to the String vs Symbol subject ([5964](https://bugs.ruby-lang.org/issues/5964), [7792](https://bugs.ruby-lang.org/issues/7792), [14277](https://bugs.ruby-lang.org/issues/14277)) there are some conclusions we can assume:
* Current String vs Symbol is not the ideal scenario. See: Matz and Koichi comments.
* Current philosophy is to use Symbols as identifiers and Strings when strings are needed.
* Current situation is that Symbols are being used in many code bases as strings except for strings that really need the String methods.
* Current situation is that we are designing APIs to handle both String and Symbol inputs forcing an overhead of API development.
I propose the deprecation of `Symbol` class and the introduction of `String#symbol?`.
```ruby
foo = :foo
foo.class # => String
foo.symbol? # => true
bar = "bar"
bar.class # => String
bar.symbol? # => false
```
For backwards compatibility transition path I propose:
```ruby
class Symbol
def self.===(var)
warn ("Warning message regarding deprecated class")
if var.class == Symbol
true
elsif var.class == String && var.symbol?
true
else
false
end
end
end
class String
def is_a?(klass)
case klass
when String
true
when Symbol
self.symbol?
else
false
end
end
end
```
--
https://bugs.ruby-lang.org/
Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>