Go 语言官方包函数中文翻译
Go官方包函数中文翻译
***
import "strings"
func Join(a []string, sep string) string
- Join concatenates the elements of a to create a single string. The separator string sep is placed between elements in the resulting string.
- 翻译: 根据切片a中的元素生成一个字符串, sep分割字符串被放置在生成的字符串中间.
例如:
s := []string{"hah", "nihao", "wode"} fmt.Println(strings.Join(s, ",, ")) fmt.Println(strings.Join(s, "")) 输出: hah,, nihao,, wode hahnihaowode
Go内建函数
func append(s []T, vs …T) []T
- append 的第一个参数 s 是一个元素类型为 T 的切片, 其余类型为 T 的值将会追加到该切片的末尾。
- append 返回值: 一个包含原切片所有元素加上新添加元素的切片。
- 当 s 的底层数组太小,不足以容纳所有给定的值时,它就会分配一个更大的数组。 返回的切片会指向这个新分配的数组。
func make([]T, len, cap) []T
- 切片可以使用内置函数 make 创建;
- 参数: []T: T 为切片中元素的类型;
len : 该切片的长度;
cap : 该切片的容量;
当参数为 2个时, 第二个参数即为长度,也是容量. 即len == cap - 返回值: 为该数组对应的切片;
- 使用内置函数 len 和 cap 获取切片的长度和容量信息。
例如:
s := make([]byte, 5) len(s) == 5 cap(s) == 5
func copy(dst, src []T) int
- copy 函数将源切片的元素复制到目的切片。 它返回复制元素的数目。
copy 函数支持不同长度的切片之间的复制(它只复制较短切片的长度个元素), 所以保证 src的容量 <= dst的容量.
此外, copy 函数可以正确处理源和目的切片有重叠的情况。
例如:
func AppendByte(slice []byte, data ...byte) []byte { m := len(slice) n := m + len(data) if n > cap(slice) { // if necessary, reallocate // allocate double what's needed, for future growth. newSlice := make([]byte, (n+1)*2) copy(newSlice, slice) slice = newSlice } slice = slice[0:n] copy(slice[m:n], data) fmt.Println(slice) return slice }
- copy 函数将源切片的元素复制到目的切片。 它返回复制元素的数目。
func append(s []T, x ...T) []T
- append 函数将 x 追加到切片 s 的末尾,并且在必要的时候增加容量。
- 如果是要将一个切片追加到另一个切片尾部,需要使用 ... 语法将第2个参数展开为参数列表。
例如:
a := []string{"John", "Paul"} b := []string{"George", "Ringo", "Pete"} a = append(a, b...) // equivalent to "append(a, b[0], b[1], b[2])" // a == []string{"John", "Paul", "George", "Ringo", "Pete"}
Range
- for 循环的 range 形式可遍历切片或映射
- 当使用 for 循环遍历切片时,每次迭代都会返回两个值。 第一个值为当前元素的下标,第二个值为该下标所对应元素的一份副本.
- 可以将下标或值赋予 _ 来忽略它
- 若你只需要索引,去掉 , value 的部分即可
例如:
func main() { var result = []int{1, 2, 4, 8, 16, 32, 64, 128} for i, v := range result { fmt.Printf("i = %d, value = %d\n", i, v) } for i:= range result { fmt.Printf("i = %d\n", i) } } 输出: i = 0, value = 1 i = 1, value = 2 i = 2, value = 4 i = 3, value = 8 i = 4, value = 16 i = 5, value = 32 i = 6, value = 64 i = 7, value = 128 i = 0 i = 1 i = 2 i = 3 i = 4 i = 5 i = 6 i = 7 - 当使用 for 循环遍历 map结构(即映射)时, 返回两个值:第一个值为 key, 第二个值为key对应的value.
当map结构中无元素时, 该循环不会进入.直接跳过.
import "io/ioutil"
func ReadFile(filename string) ([]byte, error)
- ReadFile reads the file named by filename and returns the contents. A successful call returns err == nil, not err == EOF. Because ReadFile reads the whole file, it does not treat an EOF from Read as an error to be reported.
- 翻译: 读取filename 文件, 返回出文件文件全部内容. 成功: err == nil; 失败: err == EOF;
注意: 因为ReadFile() 读取的是整个文件, 所以在正常读取过程中, 文件末尾的EOF并不会当做错误进行报告.
import "net"
func ResolveTCPAddr(net, addr string) (*TCPAddr, error)
- ResolveTCPAddr parses addr as a TCP address of the form "host:port" or "[ipv6-host%zone]:port" and resolves a pair of domain name and port name on the network net, which must be "tcp", "tcp4" or "tcp6". A literal address or host name for IPv6 must be enclosed in square brackets, as in "[::1]:80", "[ipv6-host]:http" or "[ipv6-host%zone]:80".
Resolving a hostname is not recommended because this returns at most one of its IP addresses. - 翻译: 该函数将参数 addr解析为TCP格式的地址块, 并且根据net参数解析一对域名和端口, net必须为: TCP..., 自满地址或主机名为IPV6的解析结果必须包含在括号中. 解析一个主机名不推荐使用该函数,因为它最多返回一个IP地址.
- ResolveTCPAddr parses addr as a TCP address of the form "host:port" or "[ipv6-host%zone]:port" and resolves a pair of domain name and port name on the network net, which must be "tcp", "tcp4" or "tcp6". A literal address or host name for IPv6 must be enclosed in square brackets, as in "[::1]:80", "[ipv6-host]:http" or "[ipv6-host%zone]:80".
func (c *IPConn) Read(b []byte) (int, error)
- Read implements the Conn Read method.
- 翻译:该函数实现了从套接字中读取数据, 返回读取的长度和出错信息. 读取的内容拷贝在参数b中. 当该套接字关闭或出错, err被赋值错误信息返回. 接收成功, err为nil.
func (c *TCPConn) LocalAddr() Addr
- LocalAddr returns the local network address. The Addr returned is shared by all invocations of LocalAddr, so do not modify it.
- 翻译: 该函数返回一个本地的网路地址. 这个调用函数返回的地址被所有调用共享,不要去修改它..
func (c *IPConn) RemoteAddr() Addr
- RemoteAddr returns the remote network address. The Addr returned is shared by all invocations of RemoteAddr, so do not modify it.
- 翻译: 该函数返回一个 远程的网络地址. 该掉用函数返回的地址 被整台机器共享, 不要去修改它.
func Dial(network, address string) (Conn, error)
- Dial connects to the address on the named network.
Known networks are "tcp", "tcp4" (IPv4-only), "tcp6" (IPv6-only), "udp", "udp4" (IPv4-only), "udp6" (IPv6-only), "ip", "ip4" (IPv4-only), "ip6" (IPv6-only), "unix", "unixgram" and "unixpacket".
For TCP and UDP networks, addresses have the form host:port. If host is a literal IPv6 address it must be enclosed in square brackets as in "[::1]:80" or "[ipv6-host%zone]:80". The functions JoinHostPort and SplitHostPort manipulate addresses in this form. If the host is empty, as in ":80", the local system is assumed. - 翻译: 该函数依据 network 链接address指向的地址.
network标志有...
对于 TCP,UDP标识, address格式为host:port, 如果host为IPV6, 则必须被包含在方括号中. 函数JoinHostPort和SplitHostPort控制host格式. 如果host为空, 默认为本机.
注意: 1.当network == TCP 时, client链接address地址, 服务器未监听时, 该函数调用会立即报错.因为 TCP协议的server端, 有socket(), bind(), listen(), accept(), 随后才会在链接上的套接字接收信息.
注意: 2.当network == UDP 时, client链接address地址, 即使服务器未开启, 该函数也会成功.因为 UDP协议的server端, 只有socket(), bind(), 然后即在该套接字端口接收来自客户端的信息
- Dial connects to the address on the named network.
import "runtime"
func Caller(skip int) (pc uintptr, file string, line int, ok bool)
- Caller reports file and line number information about function invocations on the calling goroutine's stack. The argument skip is the number of stack frames to ascend, with 0 identifying the caller of Caller. (For historical reasons the meaning of skip differs between Caller and Callers.) The return values report the program counter, file name, and line number within the file of the corresponding call. The boolean ok is false if it was not possible to recover the information.
- 翻译:返回调用函数的行号和文件名
import "os"
func Exit(code int)
- Exit causes the current program to exit with the given status code. Conventionally, code zero indicates success, non-zero an error. The program terminates immediately; deferred functions are not run.
- 翻译: exit函数使当前程序退出,code为退出状态. 同常: 0标识正常退出, 非0 标识错误.. 作用为: 程序立即终止, 并且,并且,注意:defer 关键字中的函数不会被执行.
func
声明:本人学习期间持续翻译中,水平不高,只能这么生硬的翻译。有不对的请指正:yyxyong@163.com
Go 语言官方包函数中文翻译的更多相关文章
- GitHub官方介绍(中文翻译)
注:本人亲自翻译,转载请注明出处. 官方链接地址 http://guides.github.com/activities/hello-world/ Hello World 项目在计算机编程界是一项历史 ...
- 【转】QT Graphics-View官方介绍(中文翻译)
一.GraphicsView框架简介 QT4.2开始引入了Graphics View框架用来取代QT3中的Canvas模块,并作出了改进,Graphics View框架实现了模型-视图结构的图形管理, ...
- Kubernetes tutorial - K8S 官方入门教程 中文翻译
官方教程,共 6 个小节.每一小节的第一部分是知识讲解,第二部分是在线测试环境的入口. kubectl 的命令手册 原文地址 1 创建集群 1.1 使用 Minikube 创建集群 Kubernete ...
- Superset 官方入门教程中文翻译
本文翻译自 Superset 的官方文档:Toturial - Creating your first dashboard 最新版本的 Superset 界面与功能上与文档中提到的会有些许出入,以实际 ...
- Umbraco官方技术文档 中文翻译
Umbraco 官方技术文档中文翻译 http://blog.csdn.net/u014183619/article/details/51919973 http://www.cnblogs.com/m ...
- tesseract中文语言文件包 下载
tesseract中文语言文件包 下载 tesseract中文语言文件包 下载 tesseract中文语言文件包 下载 下载地址是:https://github.com/tesseract-ocr/l ...
- Ubuntu配置图形桌面LXDE和VNC、中文语言包、中文输入法
Ubuntu配置图形桌面LXDE和VNC.中文语言包.中文输入法 http://www.lijiejie.com/ubuntu-vps-config-lxde-vnc/ LXDE是Ubuntu图形桌面 ...
- Socket编程(C语言实现):bind()函数英文翻译
本篇翻译的bind()函数,我参考的国外网站是: bind 朋友们可以自由转载我对英文的中文翻译,但是对于"作者注:"的描述,转载时请注明出处和作者,否则视为侵权. 下面是翻译的正 ...
- Socket编程(C语言实现):socket()函数英文翻译
最近开始研究使用Socket API来网络编程,想着把自己的感想.感悟写下来.我发现在编程之外还有不少概念性的东西要学习.我觉得应该有以下几点吧: 1.得了解下计算机网络的基本概念,如OSI的7层模型 ...
随机推荐
- Win10系统下软件UI显示不完整解决方案
在最初升级win10的时候就想到了这些问题,例如和各种软件的不兼容性.当然,事实上win10并没有想象的那么糟,作为一个windows user 来说,win10的确是很高大上的,无论是颜值或者是体验 ...
- cognos report在做同比时遇到的问题解决方法
本例就拿简单的一个模型作为测试: 订单中包括日期key,商品类型key 现在要实现每月的订单数,以及去年同期的订单数: step1:新建2个数据项 本月,去年同月 本月: [每日订单数据分析].[日期 ...
- 菜鸟运维笔记:小记编译安装Nginx所遇到的坑
转载请注明出处:http://blog.csdn.net/guodongxiaren/article/details/40950249 谢谢合作 前言 无论是CentOS,或是Debian/Ubunt ...
- redis学习笔记——主从同步(复制)
在Redis中,用户可以通过执行SLAVEOF命令或者设置slaveof选项,让一个服务器去复制(replicate)另一个服务器,我们称呼被复制的服务器为主服务器(master),而对主服务器进行复 ...
- IIS 之 线程池最大线程数
.net4.0,32位机器最大线程数,每核1023个 .net4.0,64位机器最大线程数,每核32768个 .net3.0,最大线程数,每核250个 .net2.0,最大线程数,每核25个 默认的最 ...
- Android 之布局(二)
3.TableLayout(表格布局) 像表格一样布局,通常情况下,TableLayout有多个TableRow组成,每个TableRow就是一行. <?xml version="1. ...
- JavaBean(web基础学习笔记十二)
一.JavaBean简介 JavaBean是使用Java语言开发的一个可重用的组件,在JSP的开发中可以使用JavaBean减少重复代码,使整个JSP代码的开发更简洁.JSP搭配JavaBean来使用 ...
- itext Protecting your PDF
/* * This class is part of the book "iText in Action - 2nd Edition" * written by Bruno Low ...
- 算法笔记_189:历届试题 横向打印二叉树(Java)
目录 1 问题描述 2 解决方案 1 问题描述 问题描述 二叉树可以用于排序.其原理很简单:对于一个排序二叉树添加新节点时,先与根节点比较,若小则交给左子树继续处理,否则交给右子树. 当遇到空子树 ...
- 算法笔记_173:历届试题 斐波那契(Java)
目录 1 问题描述 2 解决方案 1 问题描述 问题描述 斐波那契数列大家都非常熟悉.它的定义是: f(x) = 1 .... (x=1,2) f(x) = f(x-1) + f(x-2) ... ...