tcp 服务器 这部分我们将使用 TCP 协议和协程范式编写一个简单的客户端 - 服务器应用,一个(web)服务器应用需要响应众多客户端的并发请求:go 会为每一个客户端产生一个协程用来处理请求。我们需要使用 net 包中网络通信的功能。它包含了用于 TCP/IP 以及 UDP 协议、域名解析等方法
Go 有一个预先定义的 error 接口类型 type error interface { Error() string } 自定义错误 任何时候当你需要一个新的错误类型,都可以用 errors(必须先 import)包的 errors.New 函数接收合适的错误信息来创建,像下面这样: e
读取用户的输入 从键盘和标准输入 os.Stdin 读取输入,最简单的办法是使用 fmt 包提供的 Scan 和 Sscan 开头的函数。请看以下程序: // 从控制台读取输入: package main import "fmt" var ( firstName, lastName, s s
接口是什么 Go 语言不是一种 “传统” 的面向对象编程语言:它里面没有类和继承的概念。 但是 Go 语言里有非常灵活的 接口 概念,通过它可以实现很多面向对象的特性。接口提供了一种方式来 说明 对象的行为:如果谁能搞定这件事,它就可以用在这儿。 接口定义了一组方法(方法集),但是这些方法不包含(实
结构体定义 type identifier struct { field1 type1 field2 type2 ... } type T struct {a, b int} 也是合法的语法,它更适用于简单的结构体。 结构体里的字段都有 名字,像 field1、field2
常用标准库概述 像 fmt、os 等这样具有常用功能的内置包在 Go 语言中有 150 个以上,它们被称为标准库,大部分 (一些底层的除外) 内置于 Go 本身 unsafe: 包含了一些打破 Go 语言 “类型安全” 的命令,一般的程序中不会被使用,可用在 C/C++ 程序的调用中。 syscal
map 的声明与初始化 map 是引用类型,可以使用如下声明: var map1 map[keytype]valuetype var map1 map[string]int package main import "fmt" func main() { var mapLit map[str
数组的基本概念 数组是具有相同 唯一类型 的一组以编号且长度固定的数据项序列(这是一种同构的数据结构);这种类型可以是任意的原始类型例如整型、字符串或者自定义类型。数组长度必须是一个常量表达式,并且必须是一个非负整数。数组长度也是数组类型的一部分,所以 [5] int 和 [10] int 是属于不
Go 是编译型语言,所以函数编写的顺序是无关紧要的;鉴于可读性的需求,最好把 main() 函数写在文件的前面,其他函数按照一定逻辑顺序进行编写(例如函数被调用的顺序)。 编写多个函数的主要目的是将一个需要很多行代码的复杂问题分解为一系列简单的任务(那就是函数)来解决。而且,同一个任务(函数)可以被
if-else 结构 if condition1 { // do something } else if condition2 { // do something else } else { // catch-all or default } else-if 分支的数量是没
我们终将相逢
文章
分类
访问量
建站天数
标签目录
最近评论