Press "Enter" to skip to content

Pointer Receivers — Go Lang Practical Programming Tutorial p.8


то, что происходит, все приветствуют
восьмая часть программирования
сериал в этой части, что мы
я говорю о строительстве на вершине
эти методы и предыдущие
мы поговорили о ценности
приемников, и теперь мы собираемся
говорить о методах приемника указателя
поэтому большая разница здесь в том, что с
приемник указателя, который мы можем фактически запустить
изменяя фактические значения
атрибуты вещей в этом фактическом вас
знаете тип структуры, в основном, они
наш случай это этот тип автомобиля, что если мы
хотел изменить значение внутри
мы не можем сделать это с помощью оцененного приемника
так вот что мы будем делать здесь
чтобы начать, первое, что
мы собираемся идти вперед и делать это в основном
мы просто просто добавим его здесь
так что скажем, что мы хотим сделать
измените максимальную скорость автомобиля так, чтобы
чтобы сделать это, мы начнем
с func, а затем аналогично правым
ты собираешься увидеть машину, но большой
разница в том, что вы собираетесь использовать
указатель справа, который вы собираетесь указывать
через это чтение через этот автомобиль
типа в основном так теперь, что мы собираемся
назовите это новая максимальная скорость, а новая
максимальная скорость меняет что-то, поэтому мы
на самом деле не нужно ничего возвращать
но мы делаем , где наш будет принимать
параметры, которые будут новой скоростью
который просто скажет, что он плавает 64 так
теперь внутри здесь все, что мы собираемся сделать
нужно видеть, что максимальная скорость км / ч равна
новая скорость, так что теперь мы собираемся идти вперед
и не пришел сюда , и мы просто
собираюсь скопировать это, а затем что мы будем делать
мы просто скажем aa подчеркнуть точку автомобиля
новая максимальная скорость, и теперь мы скажем новые
максимальная скорость — 500 километров в час
то теперь давайте отплатим Staudt км / ч миль
в час километров в час
лучше просто идти вперед, кроме того, что мы будем
Приходите сюда и идите, идите идти, и теперь
мы видим, что он был изменен 495 308 как
против, да
23 138 так выглядит, что работало потрясающе
теперь следующая вещь, которую я хочу просто добрым
о том, чтобы действительно принести этот момент
дом похож на то, что говорят, в котором один
пробегает первые километры в час, поэтому в
километров в час, что произойдет, если
мы сказали, что точки скоростей превышают скорости
в час равно 500, поэтому мы можем видеть эти
мы видим, что это
начальные значения, поэтому давайте просто идти вперед
и запустить его еще раз
и мы видим, что километров в
час достаточно, это более быстрое значение
но затем, когда мы возвращаемся к мили за
час назад, чтобы быть оригинальным и
то это когда он был постоянно установлен
потому что теперь мы используем указатель
произойдет, хотя, если мы преобразуем это
один для приемника указателя, и что бы
нам нужно сделать, чтобы преобразовать этот метод
здесь, чтобы быть приемником указателя, а
чем приемник значений
к сожалению, это супер супер
потому что мы в основном просто
нужно сделать это, так что теперь мы пойдем сюда
если мы запустим это, и теперь мы видим, что
фактически эти два набора значений
идентичны, потому что мы на самом деле
это приемник указателя
это изменяет ценность, на самом деле это
делая то же самое, что мы были
делать прямо здесь , прямо так что это имеет
изменено значение для километров, а не
только километры в час, но и мили
в час, поскольку километров в час
называемый до миль в час, очевидно
если мы должны были делать мили в час
приемник указателя, а не километров в
час , чтобы этого не случилось
километров в час все равно будет ждать
не делай этого со мной
[Музыка]
хорошо, я был близок к тому, что я собирался
все в порядке, поэтому причина, по которой это работало
там это было из-за этого, так позвольте мне
позвольте мне избавиться от этого, но также я
о чем нас беспокоило, и мы не сделали этого
я не могу изменить скорость, я думаю, что могу
почти закончите записывать учебники для
в тот день, если я сделаю такой
ошибка в любом случае
так что здесь вы можете видеть, очевидно, км / ч
пока не был затронут, но мили в час
как мы ожидали, и
затем километров в час , и так далее , так в
этот момент вы я думаю , что разумный
человек, вероятно, задается вопросом, почему
я бы использовал значение для получателя
как бы то ни было
если приемник указателя может
выполнять работу приемника значений и
приемник-указатель, что хорошо
Я рад, что вы спросили
так что вообще так, что происходит с
приемник значений
это сделать сокращение это довольно в основном
делая копию того, что вы проходите
поэтому он делает копию, а затем вы можете
сделать все виды вещей , чтобы и вы можете
будьте уверены, что все , что вы делаете, не
собираются взорвать что-нибудь, в то время как точка
ресивера, это на самом деле собирается изменить
эта вещь сама по себе со значением
если структура является небольшим
как наша структура очень мала, есть
не слишком много входов здесь значение
приемник будет лучшим вариантом
с точки зрения эффективности, но если структура
очень большой , так как это делает
копия приемника указателя будет
более эффективная операция — это просто
будет меньше связанных с мусором
с ним так что это действительно просто вид
зависит от вашего используемого случая, если вы
перейдите к текстовой версии этого
учебник я свяжусь к я могу на самом деле
даже просто воспитывать его из голанга
Док почему, как я должен здесь использовать, мы идем
следует ли определять методы для значений или
указатели, и это в основном точная
вопросы, чтобы вы знали, что они говорят
да, рассмотрение эффективности, если
приемники, которые вы знаете, очень большие
структуры было бы намного дешевле использовать
приемник указателя, потому что вы не
сделав эту копию, но затем
это я слышу о последовательности, как если бы
если некоторые из методов типа
должен иметь приемник указателя, т.е.
вам известно, что нужно что-то изменить
то остальное тоже
для меня, что делает заметку, я имею в виду, что это похоже на
глупо, почему почему так не получается
Я имею в виду, что люди — это люди
писать для своей красоты или для
это супер простота, поэтому люди
Собираюсь использовать эффективность, чтобы вы
должен делать все для
Я думаю, что я собираюсь идти вперед
и не соглашайтесь с вами там golang Docs
но, но но да, я имею в виду, я, что я
будет думать, что это была бы лучшая идея.
написать свой код, а затем, если вы
получили примеры, где это может быть указатель
это может быть преобразование приемника ценности
чтобы оценить получателей, если вы сделали
огромная прибыль, и если вы не получите прибыль
что вы заботитесь о
отлично, сделайте все указатели
но сделать все, чтобы
все указатели-указатели только для
успокаивающая последовательность кажется
глупый для языка, например,
это все, о чем я хочу поговорить
указатели и приемники значений, поэтому
класс закончился, вы можете уйти, но я
действительно просто мое шоу действительно быстро выполняет функцию
что собирается делать в основном тот же самый
вещь только потому, что я подозреваю, что некоторые люди
может быть любопытно, и в этот момент вы
действительно должен иметь возможность написать
функции в голанге, которые собираются сделать
что делают эти методы, но если вы
хочу, чтобы я это сделал
мы можем идти вперед и делать это сейчас так, как
допустим, вместо использования указателя или
значение приемника , что если вы как бы
вы пишете функцию, которая могла бы
в основном то же самое, что и для
Например , просто позвоним func newer
Поднимите верхнюю скорость, и это будет
возьмите несколько вещей, которые могут потребовать C
тип автомобиля , а затем он собирается принять новый
скорость, которая будет поплавком 64, тогда это
собирается возвращать тип автомобиля , а затем
наконец, мы можем делать все, чтобы мы могли
скажем, C-максимальная скорость км / ч равна скорости
и тогда мы можем
скорость возврата, а затем то, что мы могли бы сделать
здесь, а не карта
точную новую максимальную скорость, мы можем просто переопределить
автомобиль, поэтому мы могли бы сказать, что автомобиль автомобиль равен
новая максимальная скорость принимает параметр
автомобиль и пятьсот
ли мы пройти машину возле максимальной скорости автомобиля см
Скорость является float64 возврат автомобиля явно
Я просто читаю эту ошибку, не могу
использовать скорость как тип автомобиля взамен или Oh
глупы хорошо давайте попробуем снова прямо
хорошо, так как вы можете видеть, что мы сделали
наша модификация в основном выглядит
потому что мы, вероятно, все еще
левый да, что там так возвращаются
вернемся к тому, как должен выглядеть этот код
там у вас есть так, что это так, как вы
вы могли бы просто написать
функция, которая делает то же самое
вещь этого метода, хотя вы
собираюсь писать по машине в основном
но это почти наверняка не
быть таким же эффективным, но на самом деле просто ездить
home — пример функции, которая
служить этой цели, так что в любом случае мы будем
бонус-сеанс в порядке, это все на данный момент, если
у вас есть вопросы, комментарии
заботится о том, что вы можете оставить
их ниже в противном случае я увижу вас в
следующий учебник, в котором мы возвращаемся
к нашему примеру веб-разработки
Please follow and like us:

Be First to Comment

Добавить комментарий