Как ни странно, это работало, когда я обновил библиотеку androidx.appcompat:...'
до
'androidx.appcompat:appcompat:1.1.0-alpha05'
с версией макета ограничения 'androidx.constraintlayout:constraintlayout:1.1.3'
в Android Studio 3.3
Все в Ruby происходит в контексте некоторого объекта. Объект на верхнем уровне называется «основным». По сути, это экземпляр Object со специальным свойством: любые определенные там методы добавляются как методы экземпляра Object (так что они доступны повсюду).
Таким образом, мы можем создать сценарий, полностью состоящий из:
puts object_id
@a = 'Look, I have instance variables!'
puts @a
, и он будет напечатайте «105640» и «Смотрите, у меня есть переменные экземпляра!».
Это не то, о чем вам обычно нужно беспокоиться, но оно есть.
Вызывающая сторона верхнего уровня - это объект main, который относится к классу Object.
Попробуйте эту программу на Ruby:
p self
p self.class
Это класс X. Вы вызываете метод «новый», который создает объект класса X. Итак, если вы запустите этот текст как скрипт, Ruby:
new
. x
new
для этого нового класса X
, создание объекта экземпляра X; x получает ссылку на этот объект. 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.
Это рубиновый интерпретатор, запускающий строку
x = X.new
Как и во многих языках сценариев,