- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
type Speaker interface {
SayHello()
}
type Human struct {
Greeting string
}
func (Human) SayHello() {
fmt.Println("Hello")
}
...
var s Speaker
s = Human{Greeting: "Hello"}
s.SayHello()
wvxvw 10.02.2016 17:13 # −3
И очень редко нужно, чтобы структура имплементила интерфейс, обычно указатель на структуру (но опять же, не обязательно, для детского примера покатит).
Но вот автор статьи Яву плохо знает, и несет чушь. В Яве можно не имплементировать интерфейс явно, но если потом к нему кастовать, то каст сработает. Так что в этом смысле Го ничего отличного не предлагает. , но смысле тот же.
someone 10.02.2016 17:25 # +2
С каких это пор?
http://ideone.com/ZeXvug
Dummy00001 10.02.2016 18:09 # 0
и на самом деле. в прошлом (по старой памяти) в жабе конверсия работала, а вылетало только при использовании. (почему подобный код нужно было instanceof везде обвешивать.)
но конкретно про возможность такого вызова я уже не помню. можно попробовать глянуть в выхлоп дизассемблера как именно метод вызывается: если через интерфейс, то точно не будет работать.
wvxvw 10.02.2016 20:20 # 0
2. Нужно просто добавить класс-обертку, типа .
someone 10.02.2016 20:26 # 0
wvxvw 10.02.2016 21:39 # 0
Abbath 10.02.2016 20:35 # 0
wvxvw 10.02.2016 21:42 # 0
Dummy00001 10.02.2016 17:15 # 0
там вообще какие-нибудь интересные фичи/либы есть?
ЗЫ это же в го бул выражение в if запрещено брать в скобки?
Abbath 10.02.2016 20:36 # 0
wvxvw 10.02.2016 21:53 # 0
Есть сборщик мусора, но нет нормального отладчика.
Есть интерфейсы, но по-настоящему полиморфизма нет, уровень энтропии в коде очень близок к Яве (код очень часто повторяется).
Есть много магии в виде штатных функций, которые делают что-то такое, что никакая другая пользовательская функция не сможет.
Есть много бесполезных возможностей. Например, можно послать сигнал в несуществующий канал: такая програма становится неуправляемой, и сделать с ней изнутри ничего нельзя. Или можно объявить метод у функции, но ничего полезного в этом методе сделать нельзя.
Dummy00001 10.02.2016 21:59 # 0
wvxvw 10.02.2016 22:07 # +1
Есть много инструментов для навигации по коду и анализа, есть хорошая интеграция с редакторами, но код нельзя выполнять интерактивно.
Есть инструмент для автоформатирования кода, но его выхлоп сомнительного качества (и практически все им пользуются).
В Го можно писать или не писать ;. С примерно такими же последствиями как и в ж.скрипте с той разницей, что в Го принято скорее не писать.
Propovednik_01 10.02.2016 22:09 # −3
У-у-у, мужеложник!.. Бог покарает всех грешников!