Что является “основным” в Ruby?

Как ни странно, это работало, когда я обновил библиотеку androidx.appcompat:...' до

'androidx.appcompat:appcompat:1.1.0-alpha05' с версией макета ограничения 'androidx.constraintlayout:constraintlayout:1.1.3' в Android Studio 3.3

44
задан lorz 27 May 2009 в 20:16
поделиться

5 ответов

Все в Ruby происходит в контексте некоторого объекта. Объект на верхнем уровне называется «основным». По сути, это экземпляр Object со специальным свойством: любые определенные там методы добавляются как методы экземпляра Object (так что они доступны повсюду).

Таким образом, мы можем создать сценарий, полностью состоящий из:

puts object_id
@a = 'Look, I have instance variables!'
puts @a

, и он будет напечатайте «105640» и «Смотрите, у меня есть переменные экземпляра!».

Это не то, о чем вам обычно нужно беспокоиться, но оно есть.

50
ответ дан 26 November 2019 в 22:11
поделиться

Вызывающая сторона верхнего уровня - это объект main, который относится к классу Object.

Попробуйте эту программу на Ruby:

p self
p self.class
13
ответ дан 26 November 2019 в 22:11
поделиться

Это класс X. Вы вызываете метод «новый», который создает объект класса X. Итак, если вы запустите этот текст как скрипт, Ruby:

  • создаст новый класс X, который является подклассом Object и который автоматически (как подкласс Object) наследует некоторые методы, одним из которых является new .
  • устанавливает имя x
  • вызывает метод new для этого нового класса X , создание объекта экземпляра X; x получает ссылку на этот объект.
3
ответ дан 26 November 2019 в 22:11
поделиться

As Charlie Martin said, X.new is a call to the constructor on the X class, which returns an object of type X, stored in variable x.

Based on your title, I think you're looking for a bit more. Ruby has no need for a main, it executes code in the order that it sees it. So dependencies must be included before they are called.

So your main is any procedural-style code that is written outside of a class or module definition.

1
ответ дан 26 November 2019 в 22:11
поделиться

Это рубиновый интерпретатор, запускающий строку

x = X.new

Как и во многих языках сценариев,

2
ответ дан 26 November 2019 в 22:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: