Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Go 组织围棋界面的最佳方式 P>自从我用C++编程以来,已经有很长时间了,但是我知道C++中的类被组织成.h文件和.cpp文件。此外,许多其他语言还受益于将代码拆分为目录结构中的逻辑分组,以改进组织_Go - Fatal编程技术网

Go 组织围棋界面的最佳方式 P>自从我用C++编程以来,已经有很长时间了,但是我知道C++中的类被组织成.h文件和.cpp文件。此外,许多其他语言还受益于将代码拆分为目录结构中的逻辑分组,以改进组织

Go 组织围棋界面的最佳方式 P>自从我用C++编程以来,已经有很长时间了,但是我知道C++中的类被组织成.h文件和.cpp文件。此外,许多其他语言还受益于将代码拆分为目录结构中的逻辑分组,以改进组织,go,Go,我现在正在努力学习Go,当我遇到接口时,我正在阅读这篇文章。本文解释了Go中的接口基本上取代了类,并展示了如何很好地设置它们 我想弄清楚的是,我应该如何将一个接口组织成文件?例如,接口应该在一个文件中,而实现在另一个文件中吗 myInterface.go type myInterface interface { get() int set(i int) } type myType struct { i int } func (p *myType) set(i int) { p.

我现在正在努力学习Go,当我遇到接口时,我正在阅读这篇文章。本文解释了Go中的接口基本上取代了类,并展示了如何很好地设置它们

我想弄清楚的是,我应该如何将一个接口组织成文件?例如,接口应该在一个文件中,而实现在另一个文件中吗

myInterface.go

type myInterface interface {
    get() int
    set(i int)
}
type myType struct { i int }
func (p *myType) set(i int) { p.i = i }
func (p *myType) get() int { return p.i }

myImplementation.go

type myInterface interface {
    get() int
    set(i int)
}
type myType struct { i int }
func (p *myType) set(i int) { p.i = i }
func (p *myType) get() int { return p.i }
我在这里的代码可能是错误的,因为我还不完全知道我在做什么(如果我错了,请纠正我),但这是最好的设置方法吗?我有一个非常困难的时候,试图围绕如何组织代码在围棋我的头,所以任何帮助是感谢


> P>编程语言不是C++,也不是C语言,而是一种新语言。Go没有与头文件等效的文件。它与类的C++概念只有松散的关联。既然你不是一个C++程序员,就不要理会这篇文章。p> 从阅读开始。然后读。浏览一下,这样你就知道在哪里可以查到东西了

围棋是开源的,所以看看真正的围棋吧

首先,看看由Go的作者编写的
time
包和。它们不使用单独的文件来进行接口声明和实现,那么您为什么要这样做呢?正如你自己所说,你还不知道自己在做什么,那么为什么不从专家们树立的榜样开始呢

<> P.GO程序设计语言的一些动机来自于创造语言的愿望,它比C语言好,比C++更简单。考虑到Go的过程特性(通常类似于C),耦合和内聚等过程设计概念非常有用。这些概念在将Go
time
包划分为多个源文件中表现得很明显。一些类设计概念也会很有用,但请记住,Go不支持继承

正如Nicklaus Wirth在他的经典论文《逐步细化的程序开发》中指出的那样,程序的早期草稿很少是理想的,有时甚至是草率的。即使是最终版本也很少是完美的。例如,Go作者在仅仅几个月后,最近重写了Go
json

Go编程语言的设计和实现有助于使用许多小函数。它倾向于简洁的解决方案。当然,许多函数并没有在包外公开。对函数大小或数量的任意限制在任何语言中都很少起作用

Go程序是通过链接构建的 把包裹放在一起。依次发送包裹 由一个或多个源构造 一起声明常量的文件, 类型、变量和函数 属于包裹的,哪些是 可在同一文件的所有文件中访问 包裹这些要素可能是: 导出并在另一个包中使用。


你想让你的第一个围棋包做什么?提出可以回答的具体问题,并提供详细信息

不需要将类型和接口放在单独的文件中。从每个包中导出的内容都很重要,您可以通过以大写字母开头的名称来表示这些内容。在C&co.中,头文件中的内容很重要,因为这是“导入”(包括)的内容。在Go中,导入的是包,它的内容如何组织到不同的源文件中并不重要(导入者无论如何都看不到它)


我个人的建议是避免创建不必要的文件。如果代码相对较短,请将其保存在一个文件中。如果它长,那么考虑将它自然地分割的部分拆分(例如接口+相关函数,如果您在java或C++中使用,则它们可能会形成单独的类)。不要仅仅为了从代码中分离定义而分离任何东西;在C.中,虽然它在.< /p>中没有说是C++或C……我知道它没有一个等价的头文件,但我也知道它与C++概念是松散的关联……我的问题是“在GO中组织接口/代码的最好方法是什么”我只是用C++头文件来比较它,因为文章是关于比较的。谢谢你的额外信息,彼得,这帮助了。我想我只是需要找到一些方法,从我面向对象(类)的思维方式转变为一些不同的思维方式,我非常担心它会变得草率。我讨厌写草率的代码…我相信我们很多人都是这样做的…非常感谢你提供的信息。我问这个问题的原因是因为我非常担心围棋会变成一场功能盛会。我不想在一个页面上有20个函数,因为我认为这很难处理。但另一方面,Go的编程可能更像这样?我不认为源文件的长度有多大关系,只要其内容属于同一个文件,例如,在Java中,一个类中的所有内容都在该文件中。如果某个东西属于那个类,这不是一个问题,任意将它分割成一个单独的文件(如果在Java中可能的话)会非常混乱。你能给我一个有组织的Go文件结构,这样我就可以看到文件之间是如何相互作用的吗?到目前为止,我从示例中看到的只是一个主func,以及同一文件中相互调用的一组其他func。这是一个很好的例子,但在一个更有组织的环境中,我