Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Нарисуй Удар - это смесь двух жанров: рисование и драки. Вы играете за одну из балерин, которые сражаются друг против друга в смертельном танце.

Испытайте новый игровой опыт в захватывающей игре “Нарисуй Удар” прямо сейчас!

Нарисуй Удар

Драки, На ловкость, Для мальчиков

Играть

Топ прошлой недели

  • Rahlkan Rahlkan 1 пост
  • Tannhauser9 Tannhauser9 4 поста
  • alex.carrier alex.carrier 5 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
0 просмотренных постов скрыто
2
egr317K
egr317K
1 год назад
Серия Дизайн на букву Х

Чтобы выключить... надо выключить — логично⁠⁠

Чтобы выключить... надо выключить — логично Дизайн, Юмор, Странный юмор, Картинка с текстом, Интерфейс
Показать полностью 1
Дизайн Юмор Странный юмор Картинка с текстом Интерфейс
0
3
egr317K
egr317K
1 год назад
Серия Дизайн на букву Х

Да прибудет с вами Галя⁠⁠

Да прибудет с вами Галя Дизайн, Юмор, Странный юмор, Картинка с текстом, Интерфейс, Отмена
Показать полностью 1
Дизайн Юмор Странный юмор Картинка с текстом Интерфейс Отмена
2
0
egr317K
egr317K
1 год назад
Серия Дизайн на букву Х

Псс, интерфейс, у тебя кнопки убегают⁠⁠

Псс, интерфейс, у тебя кнопки убегают Fail, Интерфейс, Юмор, Картинка с текстом, Странный юмор
Показать полностью 1
Fail Интерфейс Юмор Картинка с текстом Странный юмор
2
3
egr317K
egr317K
1 год назад
Серия Дизайн на букву Х

Левый носок против правого⁠⁠

Левый носок против правого Дизайн, Юмор, Странный юмор, Интерфейс, Скриншот, Картинка с текстом
Показать полностью 1
Дизайн Юмор Странный юмор Интерфейс Скриншот Картинка с текстом
1
5
Vira174
1 год назад

Интерфейс ютуб⁠⁠

Ситуация следующая. Запускаю сегодня видос на ютубе в Гуглхроме и там вот такое

Интерфейс ютуб YouTube, Интерфейс, Как исправить, Неудобство

Гуглхром

Не знаю что там произошло, инфу еле нагуглил, что такой интерфейс появился у выборочного числа пользователей. Сижу на винде 7
Далее, решил проверить как дела в Ябраузере и там, пока что, всё стандартно

Интерфейс ютуб YouTube, Интерфейс, Как исправить, Неудобство

Ябраузер

Вопрос знатокам - возможно ли как-то исправить интерфейс в Гуглхроме, вернуть к прежнему облику?



Upd.: Это "привязано" к учётке, когда выходишь из неё, то привычный интерфейс. Заходишь в учётку и новый интерфейс...

Показать полностью 1
YouTube Интерфейс Как исправить Неудобство
11
318
imctobitch
imctobitch
1 год назад
IT-юмор
Серия I'm CTO, bitch

В аду должен быть котёл с кучей настроек⁠⁠

В аду должен быть котёл с кучей настроек I`m CTO bitch, IT, IT юмор, Скриншот, Разработка, Интерфейс, Дизайн, Не надо так, Мат
В аду должен быть котёл с кучей настроек I`m CTO bitch, IT, IT юмор, Скриншот, Разработка, Интерфейс, Дизайн, Не надо так, Мат
Показать полностью 2
I`m CTO bitch IT IT юмор Скриншот Разработка Интерфейс Дизайн Не надо так Мат
28
FreshAngry007
1 год назад

Go и интерфейсы⁠⁠

В Go интерфейсы представляют собой типы, определяющие наборы методов. Они используются для обеспечения полиморфного поведения объектов. В отличие от многих других языков программирования, в Go не требуется явное указание на то, что структура реализует интерфейс. Если структура имеет все методы, описанные в интерфейсе, то считается, что она его реализует.

Основные принципы работы интерфейсов:

  1. Определение интерфейса: Интерфейс в Go описывается как набор методов. Структура или любой другой тип "реализует" интерфейс, если предоставляет реализацию всех методов, перечисленных в интерфейсе.

  2. Полиморфизм: Интерфейсы позволяют переменным иметь различные типы значения во время выполнения программы, что обеспечивает полиморфизм. Это значит, что функция, принимающая интерфейс в качестве аргумента, может работать с любым типом, который реализует этот интерфейс.

  3. Интерфейс{}: Пустой интерфейс interface{} не имеет методов и поэтому может представлять значение любого типа, включая встроенные типы данных. Он часто используется, когда точный тип данных заранее неизвестен.

Go и интерфейсы Golang, Программирование, IT, Интерфейс, Длиннопост

package main

import "fmt"

// Определение интерфейса Animal

type Animal interface {

Speak() string

}

// Реализация интерфейса Animal для структуры Dog

type Dog struct {}

func (d Dog) Speak() string {

return "Woof!"

}

// Реализация интерфейса Animal для структуры Cat

type Cat struct {}

func (c Cat) Speak() string {

return "Meow"

}

// Функция, принимающая интерфейс Animal

func printAnimalSound(a Animal) {

fmt.Println(a.Speak())

}

func main() {

dog := Dog{}

cat := Cat{}


// Оба типа, Dog и Cat, реализуют интерфейс Animal

// поэтому printAnimalSound может с ними работать

printAnimalSound(dog) // Woof!

printAnimalSound(cat) // Meow

}

В этом примере Dog и Cat являются разными типами, которые реализуют интерфейс Animal, поскольку оба предоставляют метод Speak(). Функция printAnimalSound может принимать любой тип, реализующий Animal.

Подводные камни.

Производительность. Использование интерфейсов несколько снижает производительность по сравнению с работой с конкретными типами из-за необходимости решения типов во время выполнения. Давайте рассмотрим ситуацию, где производительность критична, и использование интерфейсов может влиять на производительность из-за динамического определения типов и вызова методов через интерфейсы. В таких случаях прямое использование конкретных типов может быть более эффективным.

Go и интерфейсы Golang, Программирование, IT, Интерфейс, Длиннопост

package main


import (

"fmt"

"time"

)


// Animal интерфейс, который реализуют разные животные.

type Animal interface {

Say() string

}


// Dog структура, реализующая интерфейс Animal.

type Dog struct{}


func (d Dog) Say() string {

return "Woof!"

}


// функция, принимающая интерфейс Animal.

func makeNoise(animal Animal) {

fmt.Println(animal.Say())

}


// Функция, принимающая конкретный тип Dog.

func makeDogNoise(dog Dog) {

fmt.Println(dog.Say())

}


func main() {


dog := Dog{}


// Замер производительности при использовании интерфейса.

start_inter := time.Now()

for i := 0; i < 1000000; i++ {

makeNoise(dog)

}

result_iter := time.Since(start_inter)


// Замер производительности при использовании конкретного типа.

start := time.Now()

for i := 0; i < 1000000; i++ {

makeDogNoise(dog)

}

result_concrete := time.Since(start)


fmt.Printf("Using interface: %v\n", result_iter) // Using interface: 841.732596ms

fmt.Printf("Using concrete type: %v\n", result_concrete) // Using concrete type: 822.222233ms


}

В этом примере мы сравниваем время выполнения функций, которые работают с интерфейсом Animal и с конкретным типом Dog. Хотя разница в производительности может быть незначительной для малого количества вызовов, в высокопроизводительных системах или в системах с большим количеством вызовов эта разница может накапливаться.

Преимущества.

  1. Полиморфизм: Интерфейсы позволяют писать функции и методы, которые могут работать с любым типом данных, реализующим интерфейс, не заботясь о конкретной реализации. Это означает, что вы можете легко заменить одну реализацию другой без изменения кода, который использует интерфейс.

  2. Отделение интерфейса от реализации: Интерфейсы позволяют скрыть детали реализации за абстракцией. Это упрощает понимание кода, поскольку вам нужно сосредоточиться только на том, что делает код, а не как он это делает.

  3. Упрощение тестирования: Использование интерфейсов упрощает написание модульных тестов. Вы можете легко создать "моки" или фиктивные реализации интерфейсов для тестирования, не завися от реализаций, которые могут требовать внешних зависимостей (например, базы данных).

  4. Гибкость и расширяемость: Интерфейсы делают ваш код более гибким и легко расширяемым. Вы можете добавлять новые реализации интерфейсов без изменения существующего кода, что особенно полезно в больших и сложных системах.

  5. Взаимозаменяемость компонентов: Поскольку компоненты системы общаются через интерфейсы, вы можете легко заменять одни компоненты другими, которые реализуют те же интерфейсы. Это особенно ценно для создания плагинов, расширений или для поддержки различных вариантов конфигурации системы.

Показать полностью 2
Golang Программирование IT Интерфейс Длиннопост
0
Партнёрский материал Реклама
specials
specials

Сколько кнопок было на вашем тамагочи: три или четыре?⁠⁠

Четыре — это на богатом, три — это на каноничном. В нашем тамагочи, конечно, три. Заходите в игру и вырастите очаровательную квокку.

Игры Тамагочи Награда Ностальгия
6
egr317K
egr317K
1 год назад
Серия Дизайн на букву Х

Год — это мелочи⁠⁠

Год — это мелочи Дизайн, Fail, Интерфейс
Показать полностью 1
Дизайн Fail Интерфейс
2
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии