GoLang
GoLang常用框架
GoLang - 免费 - Sunrise - - 浏览量: 0
GoLang框架就是一种可以在项目开发过程中,提高开发效率,创建更为稳定的程序,并减少开发者重复编写代码的基础架构。PHP框架是将不同Web系统开发过程中的共性、通用部分功能进行抽象,形成开发Web程序的基本架构。
高效的 Go 编程 Effective Go - 示例:Web 服务器
GoLang - 免费 - Sunrise - - 浏览量: 0
让我们以一个完整的 Go 程序作为结束吧,一个 Web 服务器。该程序其实只是个 Web 服务器的重用。 Google 在 http://chart.apis.google.com 上提供了一个将表单数据自动转换为图表的服务。不过,该服务很难交互, 因为你需要将数据作为查询放到 URL 中。
高效的 Go 编程 Effective Go - 错误
GoLang - 免费 - Sunrise - - 浏览量: 0
库函数很多时候必须将错误信息返回给函数的调用者。如前所述,Go 允许函数可以有多个返回值的特性,使得函数的调用者在得到正常返回值的同时,可以获取到更为详细的错误信息。对库函数的设计者来说,一种推荐的做法是使用特性来提供详细的异常信息。 例如, os.Open 在异常时并不仅仅返回一个 nil 指针,它同时会返回一个错误值,用于描述是什么原因导致了异常的发生。
高效的 Go 编程 Effective Go - 并发
GoLang - 免费 - Sunrise - - 浏览量: 0
并发编程是个很大的论题。但限于篇幅,这里仅讨论一些 Go 特有的东西。在并发编程中,为实现对共享变量的正确访问需要精确的控制,这在多数环境下都很困难。 Go 语言另辟蹊径,它将共享的值通过信道传递,实际上,多个独立执行的线程从不会主动共享。 在任意给定的时间点,只有一个 Go 协程能够访问该值。数据竞争从设计上就被杜绝了。 为了提倡这种思考方式,我们将它简化为一句口号:
高效的 Go 编程 Effective Go - 内嵌
GoLang - 免费 - Sunrise - - 浏览量: 0
Go 并不提供典型的,类型驱动的子类化概念,但通过将类型内嵌到结构体或接口中, 它就能 “借鉴” 部分实现。接口内嵌非常简单。我们之前提到过 io.Reader 和 io.Writer 接口,这里是它们的定义
高效的 Go 编程 Effective Go - 空白标识符
GoLang - 免费 - Sunrise - - 浏览量: 0
我们在 for-range 循环和映射中提过几次空白标识符。 空白标识符可被赋予或声明为任何类型的任何值,而其值会被无害地丢弃。它有点像 Unix 中的 /dev/null 文件:它表示只写的值,在需要变量但不需要实际值的地方用作占位符。 我们在前面已经见过它的用法了。
高效的 Go 编程 Effective Go - 接口与其它类型
GoLang - 免费 - Sunrise - - 浏览量: 0
Go 中的接口为指定对象的行为提供了一种方法:如果某样东西可以完成这个, 那么它就可以用在这里。我们已经见过许多简单的示例了;通过实现 String 方法,我们可以自定义打印函数,而通过 Write 方法,Fprintf 则能对任何对象产生输出。在 Go 代码中, 仅包含一两种方法的接口很常见,且其名称通常来自于实现它的方法, 如 io.Writer 就是实现了 Write 的一类对象。
高效的 Go 编程 Effective Go - 方法
GoLang - 免费 - Sunrise - - 浏览量: 0
正如 ByteSize 那样,我们可以为任何已命名的类型(除了指针或接口)定义方法; 接收者可不必为结构体。
高效的 Go 编程 Effective Go - 初始化
GoLang - 免费 - Sunrise - - 浏览量: 0
尽管从表面上看,Go 的初始化过程与 C 或 C++ 差别并不算太大,但它确实更为强大。 在初始化过程中,不仅可以构建复杂的结构,还能正确处理不同包对象间的初始化顺序。
高效的 Go 编程 Effective Go - 数据
GoLang - 免费 - Sunrise - - 浏览量: 0
Go 提供了两种分配原语,即内建函数 new 和 make。 它们所做的事情不同,所应用的类型也不同。它们可能会引起混淆,但规则却很简单。 让我们先来看看 new。这是个用来分配内存的内建函数, 但与其它语言中的同名函数不同,它不会初始化内存,只会将内存置零。 也就是说,new(T) 会为类型为 T 的新项分配已置零的内存空间, 并返回它的地址,也就是一个类型为 *T 的值。用 Go 的术语来说,它返回一个指针, 该指针指向新分配的,类型为 T 的零值。
高效的 Go 编程 Effective Go - 函数
GoLang - 免费 - Sunrise - - 浏览量: 0
Go 与众不同的特性之一就是函数和方法可返回多个值。这种形式可以改善 C 中一些笨拙的习惯: 将错误值返回(例如用 -1 表示 EOF)和修改通过地址传入的实参。
高效的 Go 编程 Effective Go - 控制结构
GoLang - 免费 - Sunrise - - 浏览量: 0
Go 中的结构控制与 C 有许多相似之处,但其不同之处才是独到之处。 Go 不再使用 do 或 while 循环,只有一个更通用的 for;switch 要更灵活一点;if 和 switch 像 for 一样可接受可选的初始化语句; 此外,还有一个包含类型选择和多路通信复用器的新控制结构:select。 其语法也有些许不同:没有圆括号,而其主体必须始终使用大括号括住。
高效的 Go 编程 Effective Go - 分号
GoLang - 免费 - Sunrise - - 浏览量: 0
和 C 一样,Go 的正式语法使用分号来结束语句,和 C 不同的是,这些分号并不在源码中出现。 取而代之,词法分析器会使用一条简单的规则来自动插入分号,因此源码中基本就不用分号了。
高效的 Go 编程 Effective Go - 命名规则
GoLang - 免费 - Sunrise - - 浏览量: 0
正如命名在其它语言中的地位,它在 Go 中同样重要。有时它们甚至会影响语义: 例如,某个名称在包外是否可见,就取决于其首个字符是否为大写字母。 因此有必要花点时间来讨论 Go 程序中的命名约定。
高效的 Go 编程 Effective Go - 代码注释
GoLang - 免费 - Sunrise - - 浏览量: 0
Go 语言支持 C 风格的块注释 /* */ 和 C++ 风格的行注释 //。 行注释更为常用,而块注释则主要用作包的注释,当然也可在禁用一大段代码时使用。
高效的 Go 编程 Effective Go - 格式化
GoLang - 免费 - Sunrise - - 浏览量: 0
格式化问题总是充满了争议,但却始终没有形成统一的定论。虽说人们可以适应不同的编码风格, 但抛弃这种适应过程岂不更好?若所有人都遵循相同的编码风格,在这类问题上浪费的时间将会更少。 问题就在于如何实现这种设想,而无需冗长的语言风格规范。
高效的 Go 编程 Effective Go - 引言
GoLang - 免费 - Sunrise - - 浏览量: 0
Go 是一门全新的语言。尽管它从既有的语言中借鉴了许多理念,但其与众不同的特性, 使得使用 Go 编程在本质上就不同于其它语言。将现有的 C++ 或 Java 程序直译为 Go 程序并不能令人满意 —— 毕竟 Java 程序是用 Java 编写的,而不是 Go。