如何键入转换一个类型别名的片段

时间:2016-04-26 04:24:15

标签: go

package main

import (
    "fmt"
)

type alias int
type aliases []*alias

func main() {
    a1 := alias(1)
    t := aliases{&a1}

    fmt.Println([]*int([]*alias(t)))
}

type aliases []*alias类型基本上是[]*int

我希望能够将aliases转换回[]*int

2 个答案:

答案 0 :(得分:1)

试试这个,你可以通过正确的施法来做到这一点。

<td><input id="cartcheckbox" class="case" type="checkbox" name="case"              value="${invoice}"/></td>

http://play.golang.org/p/1WosCIUZSa

上的示例

如果你想得到所有的值(不只是第一个索引),你必须循环并转换每个元素。

type alias int
type aliases []*alias

func main() {
    a1 := alias(1)
    t := aliases{&a1}

    orig := int(*([]*alias(t)[0]))
    fmt.Println(orig)
}

示例:http://play.golang.org/p/Sx4JK3kA45

答案 1 :(得分:1)

你可以使用unsafe.Pointer,有点不安全所以不推荐

PointerToSliceOfPointersToInt := (*([]*int))(unsafe.Pointer(&t))

尝试运作https://play.golang.org/p/6AWd1W_it3