如何从一个包中设置一个结构,然后使用它的原始包

Posted

技术标签:

【中文标题】如何从一个包中设置一个结构,然后使用它的原始包【英文标题】:How to set a struct in from one package, then use it it's original package 【发布时间】:2022-01-03 14:39:27 【问题描述】:

我正在尝试将设置在一个包中的结构发送到原始包,但我无法让它工作。这有点是我想要的。

main.go

package main

import (    
    router "router"
)

func main() 
    cfg := router.Config
        some = true
    

    router.Sending(cfg)

router.go

package router

import (
    "log"
)

type Config struct 
    some bool


func Sending(class Config) 
    if Config.some
        log.Println("it worked")
    

【问题讨论】:

小写字段名称是包私有的。使用Some bool 而不是some bool。还要修正你的语法:cfg := &router.ConfigSome: true 没有理由将cfg 设为指针,因为发送的参数不是指针。 【参考方案1】:

语法错误。

我读错了一些其他问题的答案,当然不是

func Sending(class Config) 
    if Config.some
        log.Println("it worked")
    

是的

func Sending(class Config) 
    if class.some
        log.Println("it worked")
    

当然,

type Config struct 
    Some bool

而不是

type Config struct 
    some bool


正如 Zyl 所说的

【讨论】:

以上是关于如何从一个包中设置一个结构,然后使用它的原始包的主要内容,如果未能解决你的问题,请参考以下文章

ViewController 的出口视图首先是非零,然后从包加载时为零

如何在 conda 包中设置环境变量,以便在激活包含该包的环境时设置它们?

如何在octopack中使用nuspec中设置的版本号?

如何在 Tomcat 中设置 AJP 数据包大小?

如何在ResourceBundleMessageSource中设置默认语言环境?

如何在Debian中设置locale