#go
# #Вперед
Вопрос:
Предположим, у меня есть два файла.
привет.go
package main
type StringA string
func main() {
var s StringA
s = "hello"
s0 := s.(StringB) <---- somehow cast my StringA to StringB. After all, they are both strings
s0.Greetings()
}
пока.go
package main
import "fmt"
type StringB string
func (s StringB) Greetings(){
fmt.Println(s)
}
И скомпилируйте это следующим образом:
go build hello.go bye.go
Как мне выполнить приведение StringA
к типу StringB
?
Спасибо
Ответ №1:
Вы можете использовать способ s0 := StringB(s)
, которым на других языках является конструктор, но вот просто другой способ создания совместимых типов, например []byte("abc")
Ваш код может выглядеть следующим образом:
type StringA string
type StringB string
func (s StringB) Greetings(){
fmt.Println(s)
}
func main() {
var s StringA
s = "hello"
s0 := StringB(s)
s0.Greetings()
}
полный пример: https://play.golang.org/p/rMzW5FfjSE