- 博客(36)
- 收藏
- 关注
原创 go_包管理
到目前为止,所有示例代码只有一 Go 文件,其中包含一个 main函数和几个其他函数。这种将所有源代码写入单个文件的方法是不可扩展的。重用和维护以这种方式编写的代码变得不可能。这就是需要使用包的原因。包用于组织 Go 源代码以获得更好的可重用性和可读性。包是位于同一目录中的 Go 源文件的集合。包提供了代码划分,因此使得Go 项目易于维护。
2023-12-24 16:06:50 37
原创 go_文件读取
最基本的操作是将整个文件读入内存。这是在ioutil包的ReadFile函数的帮助下完成的。创建文件的时候,如果存在同名文件,则create函数将截断该文件,此函数返回文件错误描述。2.将字符串写入文件。
2023-12-23 11:12:06 35
原创 9.2 长短期记忆网络(LSTM)
在初始化函数中, 长短期记忆网络的隐状态需要返回一个额外的记忆元, 单元的值为0,形状为(批量大小,隐藏单元数)。因此,我们得到以下的状态初始化。实际模型的定义与我们前面讨论的一样: 提供三个门和一个额外的记忆元。请注意,只有隐状态才会传递到输出层, 而记忆元Ct不直接参与输出计算。前向传播:前向传播是深度学习中的一种计算过程,用于从输入数据到输出结果的计算过程。在前向传播过程中,我们将输入数据通过神经网络模型的各个层进行计算和传递,最终得到输出结果。
2023-12-21 09:37:54 226
原创 go_错误处理
创建自定义错误的最简单方法是使用errors包的New函数s stringreturn e.s实现非常简单。errorString是具有单个字符串s字段的结构类型。第 14 行使用了 errorString 指针接收器来实现 error 接口的 Error() string 方法。第 5 行的 New() 函数有一个字符串参数,通过这个参数创建了 errorString 类型的变量,并返回了它的地址。于是它就创建并返回了一个新的错误。
2023-12-18 11:05:02 26
原创 go_Defer语句
Defer语句用于让函数or语句可以在当前函数执行完毕后执行在 12 行使用 defer 语句,意味着函数将在函数返回finished()之前被调用。mian函数开始执行并打印上述输出的前两行。
2023-12-18 10:34:39 37
原创 go_泛型
在编程语言中,泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型在保证与Go 1完全兼容的情况下,为类型及函数声明增加可选的类型参数来扩展支持泛型函数和类型类型参数使用接口类型进行约束,并允许在接口类型中内嵌附加元素来指定约束的类型集合可以通过显式指定类型实参,来实例化泛型类型和函数。为了简洁性,类型推断机制可以在大多数场景下减少甚至忽略泛型实例化时指定的类型实参个数。
2023-12-18 09:52:43 30
原创 go_Mutex(互斥锁)
当一个程序并发运行时,修改共享资源的部分代码不应该被多个Goroutines同时访问修改共享资源的这段代码被称为临界区使用互斥锁,限定临界区只能同时由一个线程持有。
2023-12-18 09:02:07 42
原创 go_channel
Channels可以被认为是Goroutine进行通信的管道。类似于水在管道中从一端流向另一端的方式,数据可以从一端发送并使用Channel从另一端接收。
2023-12-17 15:17:38 32
原创 Goroutine(Go协程)
Go是一种并发语言,Go中使用Goroutine和channel处理并发Goroutines是与其他函数or方法同时运行的函数or方法Goroutines可以被认为是轻量级线程。与线程相比,创建Goroutine的成本很小。因此,Go应用程序通常会同时运行数千个GoroutineGoroutines相对于线程的优势。
2023-12-17 10:35:05 40 1
原创 go_结构体
这种情况下也可以使用stu1.Name 代替(*stu1).Name (后者是显示的解引用)注意:当定义一个结构体变量,但是没有给它提供初始值,则对应的字段被赋予它们各自类型的零值。即使匿名字段没有明确的名称,默认情况下匿名字段的名称就是其类型的名称。只创建一个新的结构变量,并没有像命名结构那样定义任何新的结构类型。一个结构体可能包含一个字段,而该字段又是一个结构。可以创建具有仅包含类型而没有字段名称的字段的结构。这些结构的类型称为匿名函数。这些类型的字段称为匿名字段。这些类型的结构称为嵌套结构。
2023-12-16 09:13:01 37 1
原创 go_函数
可以从函数返回命名值,如果返回值被命名,则可以认为它在函数的第一行被声明为变量。result-list:函数返回值。一个函数可以返回多个值。
2023-12-14 15:24:32 29 1
原创 go_切片
切片是对数组一个连续片段的引用(该数组我们称之为相关数组,通常是匿名的),所以切片是一个引用类型实际开发中我们很少使用数组,取而代之的是切片切片是一个长度可变的数组。
2023-12-13 18:13:43 31
原创 go_数组
数据的长度是固定的。我们在声明一个数组时需要指定它的长度,一旦指定了长度,那么它的长度值是不可以改变的。可以使用不同的方式来声明数组默认值都为0a[0]=3a := […]int{3,4,5,6,7}// 也可以不显式定义数组长度,由编译器完成长度计算Go中的数组是值类型而不是引用类型。这意味着当数组赋值给一个新的变量时,该变量会得到一个原始数组的一个副本如果对新变量进行更改,则不会影响原始数组。
2023-12-13 17:40:02 33
原创 go基础数据类型
数据类型的出现是为了把数据分成所需内存大小不同的数据,编程的时候需要用大数据的时候才需要申请大内存,这样就可以充分利用内存。以下是 Go 中可用的基本类型:bool (布尔)数值类型byterunestring。
2023-12-13 12:48:12 28
原创 C++高级教程:文件和流
上面的实例中使用了 cin 对象的附加函数,比如 getline()函数从外部读取一行,ignore() 函数会忽略掉之前读语句留下的多余字符。fstream 文件流,且同时具有 ofstream 和 ifstream 两种功能,这意味着它可以创建文件,向文件写入信息,从文件读取信息。trunc:如果该文件已经存在,其内容将在打开文件之前被截断,即把文件长度设为 0。ofstream 从输出文件流,用于创建文件并向文件写入信息。自动关闭刷新所有流,释放所有分配的内存,并关闭所有打开的文件。
2023-05-03 11:16:20 321 1
原创 C++面向对象:数据抽象,封装,接口
只表现必要的信息而不呈现细节。数据抽象是一种依赖于和的编程(设计)技术。在 C++ 中,我们使用访问标签来定义类的抽象接口。抽象把代码分离为接口和实现。所以在设计组件时,必须保持接口独立于实现,这样,如果改变底层实现,接口也将保持不变。
2023-05-02 22:02:26 121 1
原创 C++ 面向对象:多态
继承时候会用到,不同的派生类对基类的函数有不同的实现。,或静态链接 - 函数调用在程序执行前就准备好了。有时候这也被称为。
2023-05-02 20:50:22 109
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人