Size: a a a

2020 August 26

N

Ni in RubyRush
>>> !True
 File "<stdin>", line 1
   !True
   ^
SyntaxError: invalid syntax
источник

SR

Shattered Ruby in RubyRush
А, так
источник

SR

Shattered Ruby in RubyRush
источник

SR

Shattered Ruby in RubyRush
Я про это имел ввиду ещё
источник

N

Ni in RubyRush
это оператор сравнения, а не логический
источник

SR

Shattered Ruby in RubyRush
Сори, да
источник

N

Ni in RubyRush
И есть разница между этими операторами
is not/is проверяет относятся ли объекты к одному участку в памяти
!=/== вызывает метод __eq__, который проверяет равенство объектов, и который можно перегрузить, как и в руби метод сравнения ==

Например:
>>> class Foo: pass
>>> Foo() == Foo()
False
>>> Foo() is Foo()
False


Но:
>>> class Foo:
...     def __eq__(self, other):
...             if isinstance(other, self.__class__):
...                     return True
...             else:
...                     return False
...
>>> Foo() == Foo()
True
>>> Foo() is Foo()
False
источник

N

Ni in RubyRush
такую разницу нужно понимать, потому что она частично одинакова для обоих языков, поэтому не сочтите за оффтоп
источник

SR

Shattered Ruby in RubyRush
Ni
И есть разница между этими операторами
is not/is проверяет относятся ли объекты к одному участку в памяти
!=/== вызывает метод __eq__, который проверяет равенство объектов, и который можно перегрузить, как и в руби метод сравнения ==

Например:
>>> class Foo: pass
>>> Foo() == Foo()
False
>>> Foo() is Foo()
False


Но:
>>> class Foo:
...     def __eq__(self, other):
...             if isinstance(other, self.__class__):
...                     return True
...             else:
...                     return False
...
>>> Foo() == Foo()
True
>>> Foo() is Foo()
False
Ну это как == и === в жсе
источник

SR

Shattered Ruby in RubyRush
Если я правильно понял
источник

SR

Shattered Ruby in RubyRush
Второй как раз проверяет на участок в памяти
источник

N

Ni in RubyRush
Shattered Ruby
Ну это как == и === в жсе
В жсе не помню, но в руби так:
=== returns true if obj is an instance of mod or one of mod’s descendants. Of limited use for modules, but can be used to classify objects by class.


Для сравнения участков в памяти вроде есть equal?, который, по идее, нельзя перегрузить
[3] pry(main)> Foo.new.equal? Foo.new
=> false
[4] pry(main)> foo = Foo.new
=> #<Foo:0x0000560acf86de60>
[5] pry(main)> foo.equal? foo
=> true
источник

N

Ni in RubyRush
[6] pry(main)> 'Hello!' === String
=> false
[7] pry(main)> String === 'Hello!'
=> true

То есть вот так
источник

E

Eugene in RubyRush
Aleksandr
Личности, которые расширяли границы сознания психотропными веществами. Из этого следует, что задачу решить можно находясь в изменённом состоянии сознания :)
источник

E

Eugene in RubyRush
ну здесь хотя бы призовой фонд указали, в отличие от предыдущего раза :)
источник

SR

Shattered Ruby in RubyRush
а === тут при чём
источник

SR

Shattered Ruby in RubyRush
источник

Α

ΑΛΉΣΕΡ in RubyRush
Среда
источник

K

Kirill Ilyin in RubyRush
Проблема в том, что люди в этом чате не понимают этих правил или вообще отказываются выполнять эти простые правила.
источник

K

Kirill Ilyin in RubyRush
Я не модер этого канала, не мне решать, что тут делать.
источник