./main.go:23:15:无效的类型断言:bar。(Foo)(非接口类型Bar位于左侧)

I've some trouble to understand why this code cant build.

package main

import (
    "fmt"
)

type Foo interface {
    Cose() string
}

type Bar struct {
    cose string
}

func (b *Bar) Cose() string {
    return b.cose
}

func main() {
    bar := Bar{
        cose: "ciaone",
    }
    ii, ok := bar.(Foo)
    if !ok {
        panic("Maronn")
    }
    fmt.Println(" cose : " + ii.Cose())
}

Interface is an opposite operation - converting interface to specific type. Like:

package main

import (
    "fmt"
)

type Foo interface {
    Cose() string
}

type Bar struct {
    cose string
}

func (b *Bar) Cose() string {
    return b.cose
}

func main() {
    bar := Foo(&Bar{
        cose: "ciaone",
    })
    ii, ok := bar.(*Bar)
    if !ok {
        panic("Maronn")
    }
    fmt.Println(" cose : " + ii.Cose())
}

Demo: https://play.golang.org/p/ba7fnG9Rjn