在Go中访问struct属性

时间:2018-01-30 14:30:08

标签: go struct

现在我的struct实现了这个接口,如下面的

type MyRunner struct {
    path string
}

func (r MyRunner) soSomthing(newPath string) error {
    run(path)
    return nil
}

现在我想要创建对象,我收到了错误 隐含分配未导出的字段'路径'在MyRunner文字中

我就是这样做的

&run.MyRunnter{”a/b/c/“}

有没有办法在Go中没有New关键字?

1 个答案:

答案 0 :(得分:2)

在Go中,以小写字母开头的每个字段都被视为私有字段,只能在其包中访问。只需将名称更改为<DataGrid ItemsSource="{Binding Assignments}" AutoGenerateColumns="False"> <DataGrid.Columns> <DataGridTextColumn Header="Name" Binding="{Binding Name}"/> <DataGridTextColumn Header="Motor0" Binding="{Binding Motors[0].Name}" /> <DataGridTextColumn Header="Motor1" Binding="{Binding Motors[1].Name}" /> <DataGridTextColumn Header="Motor2" Binding="{Binding Motors[2].Name}" /> <DataGridTextColumn Header="Motor3" Binding="{Binding Motors[3].Name}" /> </DataGrid.Columns> </DataGrid>

Path

此规则适用于Go中的其他标识符:类型名称,函数名称。请参阅有关文档的Exported identifiers

如果您不想公开该字段。写一个将充当构造函数的函数。

type MyRunner struct {
    Path string
}

标准库container.list.New

中的示例