13. Рассмотрим конструктор в solidity.
Вы скажете, но ведь мы рассматриваем функции, а конструктор это что-то от классов.
Ну во-первых в solidity конструктор является функцией.
А во-вторых нам нужно будет использовать конструктор до изучения ооп , для кода в функциях и хорошо бы понимать что это.
В этом видео я вам показал, что язык не имеет значения, мы взяли котлин, питон и solidity и я вам показал, что действительно, если я знаю зачем нужен конструктор, то язык не имеет значения.
Я хочу, что бы вы меня услышали насколько важно изучать несколько языков.
Да, мы изучаем solidity, но так как попался на пути конструктор, я все же хочу напомнить, что изучать нужно несколько языков и тогда сможете выделить главное.
Иногда я вижу, такие сообщения. Я изучаю сейчас Си, потом буду изучать js и возможно пайтон(языки взял на вскидку).
Что Вы видите в таком сообщении. Я лично вижу следующее перевожу на нормальный язык.
Оригинал. Я изучаю сейчас Си, потом буду изучать js и возможно пайтон(языки взял на вскидку).
Перевод. Я трачу время на язык, но мне кажется, что писать я не буду, я никак не могу понять язык и что нем и как устроено и вообще как его изучать. Но я потом все же попробую изучить ещё язык, но мне мало вериться что у меня что-то получится.
А теперь представьте ситуацию из жизни. Взяли новичка в мастерскую по ремонту авто. Ему говорят замени свечи зажигания. Он думает. Пойду как я почитаю где стоят свечи зажигания в жигулях и как их заменить. Через час пригоняют другую машину, например опель. И говорят замени свечи зажигания в опеле. Новичок думает пойду как я почитаю, где стоят свечи зажигания в опеле и как из заменить.
Вам не кажется странной логика новичка.
Но я точно уверен, что почитав уже про вторую машину и свечи он сделает вывод, что во всех автомобилях, свечи
вкручиваются в головку цилиндра.
Так в программировании то же самое.
Если это свечи в авто - то к гадалке не ходи они точно будут вкручиваться в головку блока цилиндров.
Если это конструктор в языке, то он точно будет инициализировать(присваивать значение) или делать нечто связано с инициализацией.
По сути дела в этом видео уроке я показал, что я знал что такое конструктор в других языках программирования мне нужна была одна минута посмотреть, что он делает в solidity и пол минуты, как это записывать.
Теперь мы можем сделать вывод. собственно, так что же такое изучения языка программирования и почему есть люди, которые пишут на любых язык.
Ответ вы дадите в домашнем задании.
Так все-таки как изучать языки программирования и что в них нужно изучать и каким методом?
Такие вещи, как мы сейчас проходим, просто попался конструктор - очень хорошо демонстрируют, как правильно изучать языки программирования. При выполнении домашнего задания, почитайте конструкторы в этих трёх языках и выведите главное что он делает - это и будет истина применимая ко всем языкам. Понимая суть, нам достаточно в любом другом языке посмотреть детали.
Да в языках есть вещи, которые присущи только этому языку, но они не относятся к базовым. таким как функции, методы, классы, так как базовые вещи одинаковы для всех языков.
А я вас скажу, что не есть изучение языка программирования:
Упереться в синтаксис и пытаться записать как в языке без понимания главного.
Ниже приведён код конструкторов в трех языках программирования:
что бросается в глаза? Записаны по разному. Сказать секрет. Если понимаете суть, то записать не составит труда (раз написал, второй, третий на четвёртый уже сами руки напишут).
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;
abstract contract A {
uint public a;
constructor(uint a_) {
a = a_;
}
}
>>> class Complex:
... def __init__(self, realpart, imagpart):
... self.r = realpart
... self.i = imagpart
class Customer public @Inject constructor(name: String) { /*...*/ }
class Person(val name: String) {
val children: MutableList<Person> = mutableListOf()
constructor(name: String, parent: Person) : this(name) {
parent.children.add(this)
}
}
читать больше 14. Напишем код конструктора.
Рассмотрим конструктор изнутри в действии, поведение при развертывании контракта.
Конструктор — это необязательная функция, объявленная с помощью constructor ключевого слова, которая выполняется при создании контракта и где вы можете запустить код инициализации контракта.
читать больше